J'essaie d'exécuter mon JButton ActionListener dans une classe différente de celle de mon interface graphique. J'ai donc le bouton qui marche, mais je ne peux pas "accéder" aux TextFields, ils sont juste "vides" quand je veux y accéder.Exécuter JButton ActionListener dans une classe différente
Voilà ma classe GUI:
public class CaeserGUI extends JFrame {
JPanel contentPane;
private JTextField txt_input;
private JTextField number_input;
private JButton btn_translate;
private JTextArea txt_output;
private JTextField txt_input2;
private JTextField number_input2;
private JTextArea txt_output2;
/**
* Launch the application.
* Author: Paul Viehmann
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
CaeserGUI frame = new CaeserGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public CaeserGUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
txt_input = new JTextField();
txt_input.setBounds(10, 38, 363, 20);
contentPane.add(txt_input);
txt_input.setColumns(10);
number_input = new JTextField();
number_input.setBounds(383, 38, 41, 20);
contentPane.add(number_input);
number_input.setColumns(10);
JTextPane txtpnZubersetzenderSatz = new JTextPane();
txtpnZubersetzenderSatz.setText("Zu \u00FCbersetzender Satz:");
txtpnZubersetzenderSatz.setBounds(10, 11, 126, 20);
contentPane.add(txtpnZubersetzenderSatz);
JTextPane txtpnVerschiebung = new JTextPane();
txtpnVerschiebung.setText("Verschiebung:");
txtpnVerschiebung.setBounds(349, 11, 75, 20);
contentPane.add(txtpnVerschiebung);
txt_output = new JTextArea();
txt_output.setBounds(10, 69, 414, 40);
contentPane.add(txt_output);
JTextPane txtpnZuDechiffrierenderSatz = new JTextPane();
txtpnZuDechiffrierenderSatz.setText("Zu dechiffrierender Satz:");
txtpnZuDechiffrierenderSatz.setBounds(10, 120, 126, 20);
contentPane.add(txtpnZuDechiffrierenderSatz);
txt_input2 = new JTextField();
txt_input2.setColumns(10);
txt_input2.setBounds(10, 147, 363, 20);
contentPane.add(txt_input2);
number_input2 = new JTextField();
number_input2.setColumns(10);
number_input2.setBounds(383, 147, 41, 20);
contentPane.add(number_input2);
JTextPane textPane_1 = new JTextPane();
textPane_1.setText("Verschiebung:");
textPane_1.setBounds(349, 120, 75, 20);
contentPane.add(textPane_1);
txt_output2 = new JTextArea();
txt_output2.setBounds(10, 176, 414, 40);
contentPane.add(txt_output2);
ActionListener actionListener = new ButtonListener(number_input, number_input2, btn_translate, txt_output, txt_input, txt_input2, txt_output2);
btn_translate = new JButton("\u00DCbersetzen");
btn_translate.addActionListener(actionListener);
btn_translate.setBounds(10, 227, 414, 23);
contentPane.add(btn_translate);
}
}
Et c'est ma classe Listener:
public class ButtonListener implements ActionListener{
private JTextField txt_input;
private JTextField number_input;
private JButton btn_translate;
private JTextArea txt_output;
private JTextField txt_input2;
private JTextField number_input2;
private JTextArea txt_output2;
public ButtonListener(JTextField txt_input, JTextField number_input,
JButton btn_translate, JTextArea txt_output,
JTextField txt_input2, JTextField number_input2,
JTextArea txt_output2){
this.txt_input = txt_input;
this.number_input = number_input;
this.btn_translate = btn_translate;
this.txt_output = txt_output;
this.txt_input2 = txt_input2;
this.number_input2 = number_input2;
this.txt_output2 = txt_output2;
}
public void actionPerformed(ActionEvent e){
if(txt_input.getText().equals("")){
System.exit(0);
}else{
}
}
}
Lorsque j'appuie sur le bouton, ma sortie de programme, même quand j'écrire quelque chose dans le champ de texte. J'ai lu beaucoup d'autres messages, mais je n'ai pas réussi à le faire fonctionner.
J'apprécie chaque réponse.
ty, ouais je me suis trompé ... D: Mais je vais essayer l'interface aussi: D – itsPauV
Ce ne sera pas la dernière fois que vous mélangez les paramètres: P – MadProgrammer
Merci, ces étiquettes mieux travailler: D – itsPauV