Llevo unos días leyendo acerca de las variables de caracter "Final". Vengo de C, así que no me ha sido difícil entenderlo de forma general tras la comparativa con los #define, constants etc.
Así, sabiendo que un "final int CANTIDAD_DE_COCHES = 10" me definiría una cantidad de coches = 10 para todo el programa, entiendo que una variable final es inmodificable.
Ahora mi duda es esta;
Estaba yo programando un campo JTextField en un método que recoje el tipeamiento, de forma que:
Código:
Esto funcionaba, y tenía el textInstruccio definido GLOBALMENTE fuera del método. Pensaba que si borraba la definición global y declaraba el JTextField dentro del método, funcionaría igual, ya que nadie la usa fuera del mismo.textInstruccio.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent arg0) { } public void keyReleased(KeyEvent arg0) { } public void keyTyped(KeyEvent arg0) { char teclaTipejada = arg0.getKeyChar(); if (teclaTipejada == KeyEvent.VK_ENTER){ novaNoticia("S'ha pulsat enter!"); textInstruccio.setText(""); } } });
El caso es que al borrar la definición global y agregar la declaración en el método "JTextField textInstruccio = JTextField();", Java me pide que la defina como FINAL. Y me ha desconcertado, puesto que el JTextField puede modificarse, se usa, se "toca". Y no sé que Final tiene eso.
Código:
Gracias por leerme, y si se da el caso, por ayudarme ;) final JTextField textInstruccio = new JTextField(1); textInstruccio.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent arg0) { } public void keyReleased(KeyEvent arg0) { } public void keyTyped(KeyEvent arg0) { char teclaTipejada = arg0.getKeyChar(); if (teclaTipejada == KeyEvent.VK_ENTER){ novaNoticia("S'ha pulsat enter!"); textInstruccio.setText(""); } } });