Java 下面的代码是每次单击按钮时显示随机颜色。但是,尽管经过了充分的编译,它仍然不起作用。谢谢

Java 下面的代码是每次单击按钮时显示随机颜色。但是,尽管经过了充分的编译,它仍然不起作用。谢谢,java,jframe,components,jbutton,paint,Java,Jframe,Components,Jbutton,Paint,//创建随机颜色的代码 package gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class gui7 implements ActionListener { JFrame frame=new JFrame(); JButton button=new JButton("Click me"); public static void main(String args[])

//创建随机颜色的代码

package gui;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class gui7 implements ActionListener {

JFrame frame=new JFrame();

JButton button=new JButton("Click me");

public static void main(String args[]) {

    gui7 a=new gui7();

    a.go();

}
public void actionPerformed(ActionEvent event) {

    frame.repaint();    //to call paintcomponent

}
public void go() {

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    button.addActionListener(new gui7());

    gui8 f=new gui8();

    frame.getContentPane().add(BorderLayout.SOUTH,button);

    frame.getContentPane().add(BorderLayout.CENTER,f);

    frame.setSize(300,300);

    frame.setVisible(true);
}


}


package gui;

import java.awt.*;

import javax.swing.*;

public class gui8 extends JPanel {

public void paintComponent(Graphics g) {

    g.fillRect(0, 0, this.getWidth(),this.getHeight());

我想你应该换线

    int red=(int)(Math.random()*255);

    int blue=(int)(Math.random()*255);

    int green=(int)(Math.random()*255);

    Color rand=new Color(red,blue,green);

    g.setColor(rand);

    g.fillOval(70, 70, 100, 100);

}

}


每次调整JFrame的大小时,您的椭圆形都会被重新绘制,这是您想要的行为吗?
button.addActionListener(new gui7());
 button.addActionListener(this);