gpt4 book ai didi

正在创建 Java GUI,但事件未触发任何内容

转载 作者:行者123 更新时间:2023-12-01 15:56:34 26 4
gpt4 key购买 nike

我正在尝试创建这个简单的 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( );
}


}

最佳答案

简单的错误 - 您没有创建自定义按钮类,而是使用 JButton
更改以下行:
buttons[i] = new JButton("选我");
致:
buttons[i] = new ButtonJava();

关于正在创建 Java GUI,但事件未触发任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938149/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com