我在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
有人知道这里发生了什么,或者如何修复它?
答案 0 :(得分:3)
但也会在屏幕左上角放置最近按下的按钮的图像。我说一个按钮的“图像”,因为它无法点击。
听起来像是在做自定义绘画。
paintComponent()
,而不是绘制(); super.paintComponent(...)
,以便在自定义绘制完成之前清除面板的背景。如果这没有帮助,请发布一个显示问题的正确SSCCE。
将来,请务必在发布SSCCE时提出所有问题。