2011-02-08 32 views
0

我想创建这个简单的GUI,点击次数显示在按钮上,并在每次点击后增加,并且每次点击后,每种颜色按钮向右旋转一个值。目前,GUI已经创建,但背景没有设置,当你点击任何东西时没有任何反应。我似乎无法在这里找到问题。任何人都可以看到吗?正在创建Java GUI,但事件不会触发任何东西

非常感谢本您的帮助:)

import java.awt.*; 
    import javax.swing.*; 
    import java.awt.event.*; 


public class ButtonJava extends JButton implements ActionListener { 
    private static int currentColor=0; 
    private int clicks; 
    private static final Color[] COLORS = { 
    Color.ORANGE, 
    Color.WHITE, 
    Color.GREEN }; 

    public ButtonJava(){ 
    setBackground(Color.YELLOW); 
    setText("Pick ME"); 
    this.addActionListener(this); 
    } 

    public static void main(String[] args) { 
    JFrame frame = new JFrame ("JFrame"); 
    JPanel panel = new JPanel(); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JButton buttons[] = new JButton[3]; 
    for(int i = 0;i<buttons.length ; i++){ 
     buttons[i] = new ButtonJava(); 
     panel.add(buttons[i]); 
    } 
    frame.getContentPane().add(panel); 
    frame.setSize(500, 500); 
    frame.setVisible(true); 
    } 

    private void updateButton() { 
    changeColors(); 
    clicks++; 
    setText("# of clicks = " + Integer.toString(clicks)); 
    } 

    private void changeColors() { 
    for (int i=0;i<COLORS.length;i++){ 
     setBackground(COLORS[currentColor]); 
     currentColor %=2; 
    } 
    } 

    @Override 
    public void actionPerformed(ActionEvent event) { 
    updateButton(); 
    } 


} 
+0

啊,我已经纠正了我现在最初的错误,但我实施了错误地调用changeColors(),它只改变一个按钮的颜色而不是所有三个。任何人都可以帮忙吗? – user476033 2011-02-08 20:50:54

回答

1

简单的错误 - 你没有创建自定义按钮,你使用JButton
更改以下行:
buttons[i] = new JButton("Pick Me");
要:
buttons[i] = new ButtonJava();

0

main,你让正常JButton S和它们添加到您的用户界面,当我想你的意思是要增加ButtonJava代替。

0

它不应该是:

ButtonJava buttons[] = new ButtonJava[3]; 
for(int i = 0;i<buttons.length ; i++){ 
    buttons[i] = new ButtonJava(); 
    panel.add(buttons[i]); 
}