我尝试使用Java创建草稿板。 出于这个原因,我在一个数组中创建了100个JButton。 在创建这些按钮时,我想更改每个第二个按钮的Backcolor。
但按钮的颜色不会改变。
这是截图:
我想更改按钮的颜色而不是按钮背后的颜色。 如果你可以帮助我,那真是太棒了。谢谢你的建议。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class Brett extends javax.swing.JFrame{
public Brett ()
{
initComponents();
getContentPane().removeAll();
boolean schwarz = true;
for (int z = 0; z< feld.length;z++){
for (int sp = 0; sp< feld[z].length; sp++){
Feld f = new Feld (this, schwarz );
feld [z][sp] = f;
f.addActionListener(fl);
if (schwarz){
f.setBackground(new Color(100,216,199));
f.setOpaque(true);
//f.setBorderPainted(false);
}
else {
f.setBackground(Color.lightGray);
f.setOpaque(true);
//f.setBorderPainted(false);
}
if (schwarz){
if (z<=3){
f.setStein(new Einfach (f,false));
f.setForeground(Color.white);
f.setText("O");
}else if (z>=6){
f.setStein(new Einfach (f, true));
f.setForeground(Color.black);
f.setText("O");
}
}
jPanel1.add(feld [z][sp]);
schwarz =! schwarz;
}
schwarz =! schwarz;
}
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
pack();
}
// @SupressWarnings("unchecked")
private void initComponents(){
jPanel1 = new javax.swing.JPanel();
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setLayout(new java.awt.GridLayout(10,10));
//jButton1.setText("jButton1");
//jPanel1.add(jButton1);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
pack();
}
public static void main(String [] args){
java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
new Brett().setVisible(true);
}
});
}
private Feld[][] feld = new Feld[10][10];
private class FeldListener implements java.awt.event.ActionListener{
public void actionPerformed(java.awt.event.ActionEvent evt){
System.out.println("Feld geklickt!");
}
}
FeldListener fl = new FeldListener();
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;
}