Witam. Mam problem, który chyba tyczy się przekazywania zmiennych pomiędzy Action Listenerami dla jednej klasy. Jeśli np. chcę wprowadzić tekst z pliku do pola, to nie ma problemu. Ten tekst przez JTextField będzie dostępny dla innych Action Listenerów i dla klasy w której uruchamia się okno:
public class getFileListener implements ActionListener {
private JTextArea JTextInput;
public getFileListener(JTextArea JTextInput)
{
this.JTextInput = JTextInput;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser jGet = new JFileChooser();
if(jGet.showOpenDialog(null)==JFileChooser.APPROVE_OPTION) //jeśli wybierzemy juz jakis plik
{
File file = jGet.getSelectedFile();
try {
JTextInput.setText(null);
Scanner scanner = new Scanner(file);
while(scanner.hasNext())
{
JTextInput.append(scanner.nextLine()+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
Natomiast jeśli bym chciał żeby tekst nie został zapisany w polu tekstowym, ale jako String, powiedzmy tak:
public class getFileListener implements ActionListener {
private JTextArea JTextInput;
private String s;
public getFileListener(JTextArea JTextInput, String s)
{
this.JTextInput = JTextInput;
this.s = s;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JFileChooser jGet = new JFileChooser();
if(jGet.showOpenDialog(null)==JFileChooser.APPROVE_OPTION) //jeśli wybierzemy juz jakis plik
{
File file = jGet.getSelectedFile();
try {
JTextInput.setText(null);
Scanner scanner = new Scanner(file);
while(scanner.hasNext())
{
JTextInput.append(scanner.nextLine()+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
s = JTextInput.getText();
}
}
}
to String z tekstem nie będzie dostępny poza ActionListenerem. Próbowałem szukać trochę o tym i jedyna odpowiedź jaką na to znalazłem, to żeby eksportować te zmienne do tymczasowych plików. Jeśli tak to będę kombinował w tym kierunku, ale chciałbym się upewnić czy na pewno.