Buenas;
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:
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("");
}
}
});
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.
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:
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("");
}
}
});
Gracias por leerme, y si se da el caso, por ayudarme ;)