JButton ActionListenerを自分のGUIとは異なるクラスで実行しようとしています。だから私は、ボタンを動作させるが、私は "アクセス"することはできません、彼らは私がそれらにアクセスしたいだけ "空"です。異なるクラスのJButton ActionListenerを実行
は、だから、私の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);
}
}
そして、それは私のリスナークラスです:私はボタンを押すと
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{
}
}
}
は、私のプログラムの終了にも、私は、TextFieldで何かを書きます。
私は他の多くの投稿を読んでいますが、それを動作させることはできませんでした。
すべての回答に感謝します。
私はそれらを間違って渡しました... D:しかし、私もインターフェイスを試します:D – itsPauV
あなたがパラメータを混ぜ合わせる最後の時ではありません:P – MadProgrammer
ありがとうございましたより良い仕事の方法:D – itsPauV