我正在尝试创建这个简单的GUI,其中按钮上显示的点击次数在每次点击后都会增加,因此每次点击后,每个按钮的颜色都会向右旋转一个值。目前,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 :(得分:1)
简单错误 - 您没有创建自定义按钮类,而是使用JButton
更改以下行:
buttons[i] = new JButton("Pick Me");
要:
buttons[i] = new ButtonJava();
答案 1 :(得分:0)
在main
中,您正在制作正常的JButton
并将其添加到您的用户界面,我猜您的意思是要添加ButtonJava
。
答案 2 :(得分:0)
不应该是:
ButtonJava buttons[] = new ButtonJava[3];
for(int i = 0;i<buttons.length ; i++){
buttons[i] = new ButtonJava();
panel.add(buttons[i]);
}