我用JButton制作了一个电影院,并将它们保存在JPanel中。
在我的txt中,我有0
和1
。我读数字并把它放到arraylist。当我setBackground()
我的JButton 0
时,我设置为绿色,如果来1
我设置为红色。但是当代码运行时,所有这些都是绿色的。我该如何解决这个问题?
我尝试重新涂抹和处置。但它没有用。
if(controls.get(n) == 0){
button.setBackground(Color.GREEN);
// repaint();
// dispose();
}
if(controls.get(n) == 1){
// button.setBackground(Color.RED);
repaint();
// dispose();
}
n++;
答案 0 :(得分:2)
问题是行button.setBackground(Color.GREEN);
button
是对单个按钮的引用,您只更新该JButton的颜色。
下面的代码更新了一个JButtons数组
JButton[] buttons = new JButton[100];
for(int n = 0; n<buttons.length; n++) {
buttons[n] = new JButton();
if(controls.get(n) == 0){
buttons[n].setBackground(Color.GREEN); // update button number n
repaint();
dispose();
}
if(controls.get(n) == 1){
buttons[n].setBackground(Color.RED); // update button number n
repaint();
dispose();
}
}