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

正在创建Java GUI,但事件不会触发任何内容,java,user-interface,Java,User Interface,我试图创建一个简单的GUI,其中按钮上显示的点击次数在每次点击后递增,因此每次点击后,每个按钮的颜色向右旋转一个值。此时,GUI已经创建,但是背景没有设置,当您单击任何东西时,都不会发生任何事情。我在这里似乎找不到问题。有人能看到吗 非常感谢您在这方面的帮助:) import java.awt.*; 导入javax.swing.*; 导入java.awt.event.*; 公共类ButtonJava扩展JButton实现ActionListener{ 私有静态int currentColor=0

我试图创建一个简单的GUI,其中按钮上显示的点击次数在每次点击后递增,因此每次点击后,每个按钮的颜色向右旋转一个值。此时,GUI已经创建,但是背景没有设置,当您单击任何东西时,都不会发生任何事情。我在这里似乎找不到问题。有人能看到吗

非常感谢您在这方面的帮助:)

import java.awt.*;
导入javax.swing.*;
导入java.awt.event.*;
公共类ButtonJava扩展JButton实现ActionListener{
私有静态int currentColor=0;
私人点击;
专用静态最终颜色[]颜色={
颜色,橙色,
颜色,白色,
Color.GREEN};
公共巴顿哈瓦(){
立根背景(颜色:黄色);
setText(“选择我”);
this.addActionListener(this);
}
公共静态void main(字符串[]args){
JFrame=新JFrame(“JFrame”);
JPanel面板=新的JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton按钮[]=新JButton[3];

对于(inti=0;i一个简单的错误-您不是在创建自定义按钮类,而是在使用
JButton

更改以下行:
按钮[i]=新按钮(“选择我”);

致:

buttons[i]=new ButtonJava();

main
中,您正在创建正常的
JButton
并将它们添加到您的UI中,而我猜您的意思是添加
ButtonJava

应该是:

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

对于(inti=0;iAh),我现在已经纠正了我最初的错误,但是我已经实现了对changecorders()的调用错误地说,它只是更改了一个按钮的颜色,而不是所有三个按钮的颜色。有人能帮忙吗?@user476033:每个
ButtonJava
对象只能控制自己,这意味着当您单击其中一个按钮时,只有该按钮会更改颜色。如果您想单击其中一个按钮并更改所有按钮,请或者,您必须将其他按钮提供给每个按钮的构造函数,然后在其他每个按钮上调用
changeColor
call
setBackground
。@安定:当您说“您必须将其他按钮提供给每个按钮的构造函数”时,你这是什么意思?我该怎么做?非常感谢你的帮助help@user476033:您需要一种从
ButtonJava
内部引用其他按钮的方法。一种方法是让
ButtonJava
构造函数获取
JButton
列表(或
ButtonJava
),然后在
changeColor
中,您将迭代该按钮列表,并对每个按钮调用
setBackground
ButtonJava buttons[] = new ButtonJava[3];
for(int i = 0;i<buttons.length ; i++){
    buttons[i] = new ButtonJava(); 
    panel.add(buttons[i]);
 }