gpt4 book ai didi

java - JButton 上的 ActionListener 在我的框架中创建 "image"按钮?

转载 作者:行者123 更新时间:2023-12-01 22:32:45 25 4
gpt4 key购买 nike

我正在使用 java 中的 swing 创建一个 connect-4 游戏。我有一个由 6 个按钮组成的数组,用于输入玩家想要进行的移动。

当我单击按钮时,ActionListener 会执行我希望它执行的操作,但还会将最近按下的按钮的图像放置在屏幕的左上角。我说按钮的“图像”是因为它无法被单击。这是我的代码:

public class ButtonPanel extends JPanel implements ActionListener{
ArrayList<JButton> buttonList;

public ButtonPanel(){

//set up the JPanel...

for (int i = 0; i < 7; i++){
buttonList.add(new JButton("" + i));
buttonList.get(i).addActionListener(this);
add(buttonList.get(i));
}
}
public void actionPerformed(ActionEvent e) {
for (JButton b : buttonList){
if(e.getSource() == b){
frame.playerMove = buttonList.indexOf(e.getSource());
return;
}
}
}
}

Here's what happens when I click the button 3

And when I click button 5

有人知道这里发生了什么,或者如何解决它吗?

最佳答案

but also places an image of the most recently pressed button in the upper left of the screen. I say "image" of a button because it cannot be clicked.

在我看来,你正在做定制绘画。

  1. 确保您重写的是 paintComponent(),而不是 Paint();
  2. 确保paintComponent() 方法中的第一条语句是super.paintComponent(...),以便在完成自定义绘制之前清除面板的背景。

如果这没有帮助,请发布适当的 SSCCE这说明了问题。

将来,请务必发布包含所有问题的 SSCCE。

关于java - JButton 上的 ActionListener 在我的框架中创建 "image"按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27365878/

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