嘿,我想要一个 JFrame,它必须包含按钮“LeftButton”和“RightButton”以及一个 JTextArea。在我按下两者之一之后,我希望 JTextArea 在新的一行中写入哪些按钮已被按下。为了做到这一点,我想使用一个 MyActionListener 类,并引用 JTextArea,它实现了 Actionlistener。
我试图为 ActionPerformed 提供 JTextArea 并意识到我必须自己创建 Setters。然后我意识到 MyActionListener 类还需要一个像 JTextArea 这样的对象,它与 JFrame 类中的相同。然后我发现我还必须更新 JFrame 类中的 JTextArea,现在我有点卡住了。我试图将 Setters 放入 JFrame 类并从 MyActionListener 调用它们但没有成功,我尝试做类似的事情A_18_c.south = south
package Aufgabe_18;
import javax.swing.*;
import java.awt.*;
public class A_18_c extends JFrame {
private Button LeftButton;
private Button RightButton;
private JScrollPane scroll;
private JTextArea south;
private MyActionListener MAL;
public static void main(String[] args) {
A_18_c l = new A_18_c("Aufgabe18c");
}
public A_18_c(String title) {
super(title);
setSize(300, 150);
this.setLocation(300, 300);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
MAL = new MyActionListener(south);
south = new JTextArea(5, 20);
south.setEditable(false);
JScrollPane sroll = new JScrollPane(south);
this.add(sroll, BorderLayout.SOUTH);
LeftButton = new Button("Left Button");
LeftButton.setOpaque(true);
LeftButton.addActionListener(MAL);
this.add(LeftButton, BorderLayout.WEST);
RightButton = new Button("Right Button");
RightButton.setOpaque(true);
RightButton.addActionListener(MAL);
this.add(RightButton, BorderLayout.EAST);
setVisible(true);
}
}
我的动作监听器:
package Aufgabe_18;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
我希望 JTextArea 写下哪个 Button 已被按下,但按下后没有任何反应。没有错误弹出。
慕容森
相关分类