Java MacOS JButton Color不会改变

时间:2016-07-04 20:47:39

标签: java macos jbutton background-color setbackground

我尝试使用Java创建草稿板。 出于这个原因,我在一个数组中创建了100个JButton。 在创建这些按钮时,我想更改每个第二个按钮的Backcolor。

但按钮的颜色不会改变。

这是截图: Screenshot of the Board

我想更改按钮的颜色而不是按钮背后的颜色。 如果你可以帮助我,那真是太棒了。谢谢你的建议。

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;

}

0 个答案:

没有答案