gpt4 book ai didi

java - ActionListener 在 Java 中不工作

转载 作者:行者123 更新时间:2023-11-29 05:38:20 26 4
gpt4 key购买 nike

我在 JFrame 上创建了一个 JPanel,并向 JPanel 添加了一个 JButon 和 JLabel。但是 ActionlListener 似乎不起作用。当我点击 JButton 时,没有任何反应。请有人帮助我。提前致谢。这是我的代码

public class Trials implements ActionListener {

JButton scoreButton;
JLabel score;
JPanel MyPanel;
int ScoreAmount=0;

public JPanel createPanel()
{
JPanel MyPanel =new JPanel();
MyPanel.setLayout(null);
MyPanel.setSize(50, 50);
MyPanel.setBackground(Color.cyan);
JLabel score =new JLabel(""+ScoreAmount);
score.setSize(50, 50);
score.setLocation(250,50);
score.setForeground(Color.red);
MyPanel.add(score);
JButton scoreButton =new JButton("add");
scoreButton.setSize(100, 50);
scoreButton.setLocation(100,50);
scoreButton.setBackground(Color.red);
scoreButton.addActionListener(this);
MyPanel.add(scoreButton);
MyPanel.setOpaque(true);
MyPanel.setVisible(true);
return MyPanel;
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==scoreButton)
{
ScoreAmount = ScoreAmount+1;
score.setText(""+ScoreAmount);
}
}

public static void display()
{
JFrame MyFrame = new JFrame();
Trials tr =new Trials();
MyFrame.setContentPane(tr.createPanel());
MyFrame.setSize(500, 500);
MyFrame.setVisible(true);
}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable(){
public void run(){
display();
}
});
}
}

最佳答案

你隐藏了为 public class Trials implements ActionListener {

声明的局部变量
JButton scoreButton;
JLabel score;
JPanel MyPanel;
int ScoreAmount=0;

应该在public JPanel createPanel()

MyPanel = new JPanel();
score = new JLabel("" + ScoreAmount);
scoreButton = new JButton("add");

不是

JPanel MyPanel = new JPanel();
JLabel score = new JLabel("" + ScoreAmount);
JButton scoreButton = new JButton("add");

  • 删除 MyPanel.setLayout(null);,默认在 JPanel 中实现的 FlowLayout 默认执行此操作,然后添加 JComponentsJPanel 只有 MyPanel.add(componentVariable) 没有任何 sizing 用于 JPanel 的 child

  • 调用 MyFrame.pack() 而不是 MyFrame.setSize(500, 500);

关于java - ActionListener 在 Java 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18656215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com