gpt4 book ai didi

java - 通过单击更改 JButton 的颜色将不起作用

转载 作者:行者123 更新时间:2023-11-29 08:10:35 26 4
gpt4 key购买 nike

public class LevelEditorButton extends JButton
{
/**
*
*/
private static final long serialVersionUID = 1L;
private int i;

public int getState() {return i;}
public void increaseState()
{
if(i == 2)
i = 0;
else
i++;
changeState();
}

public LevelEditorButton()
{
i = 0;
changeState();
this.setOpaque(true);
}
public void changeState()
{
if(i == 0)
this.setBackground(Color.GREEN);
else if(i == 1)
this.setBackground(Color.RED);
else
this.setBackground(Color.BLACK);
this.setOpaque(true);
}
}

public class ChangeColorButtonListener extends LevelEditorButton implements ActionListener
{
@Override
public void actionPerformed(ActionEvent ae)
{
this.increaseState();
}

}

在我的 Mac 上编程总是会给我带来 JButtons 的奇怪错误,所以我有点迷失了从这里去哪里。当我调试它时,它显示按钮的颜色已经改变但不会显示在屏幕上。我试过 repaint()、revalidate() 和 updateUI()。任何帮助将不胜感激。

最佳答案

问题是您从未将 ActionListener 应用于按钮。两种解决方案:

构造一个构造函数并将其自身作为监听器应用到这里

ChangeColorButtonListener(){
this.addActionListener(this);
}

或者在调用类中这样做:

ChangeColorButtonListener  ccb = new ChangeColorButtonListener();
ccb.addActionListener(ccb);

关于java - 通过单击更改 JButton 的颜色将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349819/

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