PDA

Visualizza la versione completa : [JAVA] Problema accessibilità variabili


snakez
03-06-2003, 20:22
Ciao,
ho un altro problema credo risolvibile (tutt'ora nn so come.. eeheh) ke è il seguente:
Praticamente ho una classe con relativo metodo costruttore che mi crea un frame dove al suo interno c'è un textField e un pulsante.
Per il pulsante ho messo un listeners ( bottone.addActionListener(new AscoltatoreBottoneCarica());) presente in un file diverso (AscoltatoreBottoneCarica.java e .class) che mi gestisce la pressione del tasto (actionPerformed). Come faccio a dirgli di far cambiare testo alla textField presente nel frame?

Se io in AscoltatoreBottoneCarica.java scrivo output.setText("pulsante premuto") mi da errore visto ke il textfield nn è nella classe AscoltatoreBottoneCarica ma nella classe che crea il frame (e ke chiama il listener).

Riassumendo ho una cosa così:

FILE logGUI.java

public class logGui extends Frame {
public logGui(){
...
TextArea output = new TextArea("", 20, 50, TextArea.SCROLLBARS_BOTH);
... //b_carica è un pulsante
b_carica.addActionListener(new AscoltatoreBottoneCarica());
...
...
}

public static void main(String[] args){
Frame finestra = new logGui();
}


Ora nel file AscoltatoreBottoneCarica.java ho una cosa simile:

import java.awt.event.*;
class AscoltatoreBottoneCarica implements ActionListener {
public void actionPerformed(ActionEvent e) {
output.setText(log.cerca("",Log.ALL)); // qua mi da errore. come faccio??
}
}
}


PLZ HELP ME

Xadoom
03-06-2003, 20:26
Ad okkio:

Nella classe AscoltaBottoneCarica crei un costruttore che prende come input la JTextField....poi fai:
b_carica.addActionListener(new AscoltatoreBottoneCarica(output));

e allora nella classe AscoltaBot... puoi modificare il JText

:ciauz:

snakez
03-06-2003, 21:17
scusa..ho provato a fare come dici te cioè:

Nella classe che gestisce la GUI:

b_carica.addActionListener(new AscoltatoreBottoneCarica(output));

Nell'ascoltatore:

public class AscoltatoreBottoneCarica implements ActionListener {
public void actionPerformed(TextArea t,ActionEvent e) {
t.setText("click");
}
}

// output è una TextArea

Grazie mille chiunque mi aiuti :)

Xadoom
03-06-2003, 21:38
No, io non ho detto questo, la prima modifica è ok, solo nella classe ascoltatore così:


public class AscoltatoreBottoneCarica implements ActionListener {

TextArea ta;

public AscoltatoreBottoneCarica(TextArea t){
ta = t;
}
public void actionPerformed(ActionEvent e) {
ta.setText("click");
}
}

snakez
03-06-2003, 21:49
grazie mille funziona alla grande :) alla fine avevo capito ehehe mi sa ke stò impazzendo :) grazie ancora bye

Loading