【发布时间】:2016-03-14 13:21:47
【问题描述】:
我有以下代码,它是一个用于 25 个按钮的 JFrame,每个按钮需要从颜色数组中随机分配一种颜色。我刚刚输入了一个颜色数组,但出现了错误。
import java.awt.event.*; // Needed for ActionListener and ActionEvent
import javax.swing.*; // Needed for JFrame and JButton
import java.awt.Color;
import java.awt.Graphics;
public class ColorToggleGui extends JFrame implements ActionListener {
// This stores all buttons
JButton[][] buttons;
//Stores colors
Color[] colors;
public ColorToggleGui(String title) {
super(title);
setLayout(null);
//Allocate the size of the array
colors = new Color[4];
//Initialize the values of the array
colors[0] = new Color(Color.red);
colors[1] = new Color(Color.blue);
colors[2] = new Color(Color.yellow);
colors[3] = new Color(Color.green);
buttons = new JButton[5][5];
String[] buttonLabels = { "", "", "", "", "", "", "", "", "", "", "","","","","","","","","","","","","","","" };
for(int row=0; row<5; row++) {
for (int col=0; col<5; col++) {
buttons[row][col] = new JButton(buttonLabels[row*3+col]);
buttons[row][col].setLocation(10+col*55, 10+row*55);
buttons[row][col].setSize(50,50);
buttons[row][col].addActionListener(this);
add(buttons[row][col]);
}
}
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,450);
}
// This is the single event handler for all the buttons
public void actionPerformed(ActionEvent e) {
System.out.println("Button " + e.getActionCommand() + " was pressed." );
}
public static void main(String args[]) {
ColorToggleGui frame = new ColorToggleGui("Color Toggle");
frame.setVisible(true);
}
}
带有颜色数组的部分出现此错误:
Error: incompatible types: java.awt.Color cannot be converted to int
为什么会发生错误?我还需要一种使用颜色数组为每个按钮随机分配颜色数组中颜色的方法的帮助?有什么办法可以做到吗?
【问题讨论】:
-
Colors[0] = new Color(Color.red)) 省略新的 Color 构造函数(即 Colors[0] = Color.red)