Ich versuche, meine JButton ActionListener in einer anderen Klasse als meine GUI auszuführen. So bekomme ich die Schaltfläche funktioniert, aber ich kann nicht auf die TextFields zugreifen, sie sind nur "leer", wenn ich auf sie zugreifen möchte.Führen Sie JButton ActionListener in verschiedenen Klassen
Also das ist meine GUI-Klasse:
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);
}
}
Und das ist mein Zuhörer Klasse:
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{
}
}
}
Wenn ich die Taste drücken, auch mein Programm beendet werden, wenn ich etwas in dem Textfeld schreiben.
Ich habe viele andere Beiträge gelesen, konnte aber nicht funktionieren.
Ich schätze jede Antwort.
ty, yeah Ich habe sie falsch übergeben ... D: Aber ich werde auch versuchen, die Schnittstelle: D – itsPauV
Es wird nicht das letzte Mal Sie Parameter verwechseln: P – MadProgrammer
Vielen Dank, diese Etiketten viel besser arbeiten: D – itsPauV