import javax.swing.*;
import java.awt.*;
public class SystemUI{
public SystemUI() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(400, 300, 500, 300);
frame.setVisible(true);
DrawPanel dpanel = new DrawPanel();
frame.add(dpanel);
}
public static void main(String[] args) {
new SystemUI();
}
}
class DrawPanel extends JPanel {
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int red = (int)(Math.random()*255);
int green = (int)(Math.random()*255);
int blue = (int)(Math.random()*255);
Color startColor = new Color(red,green,blue);
red = (int)(Math.random()*255);
green = (int)(Math.random()*255);
blue = (int)(Math.random()*255);
Color endColor = new Color(red,green,blue);
GradientPaint gradient = new GradientPaint(70,70,startColor,150,150,endColor);
g2d.setPaint(gradient);
g.fillOval(70, 70, 100, 100);
}
}
抱歉,又是绿的
如果想添加一个按钮,使得不用关闭窗口就可以改变颜色
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class SystemUI implements ActionListener{
JButton button1 = new JButton("Change Circle");
JFrame frame = new JFrame();
public SystemUI() {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(400, 300, 500, 300);
frame.setVisible(true);
frame.add(BorderLayout.SOUTH,button1);
button1.addActionListener(this);
DrawPanel dpanel = new DrawPanel();
frame.add(BorderLayout.CENTER,dpanel);
}
public static void main(String[] args) {
new SystemUI();
}
@Override
public void actionPerformed(ActionEvent e) {
frame.repaint();
}
}
class DrawPanel extends JPanel {
private static final long serialVersionUID = 1L;
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int red = (int)(Math.random()*255);
int green = (int)(Math.random()*255);
int blue = (int)(Math.random()*255);
Color startColor = new Color(red,green,blue);
red = (int)(Math.random()*255);
green = (int)(Math.random()*255);
blue = (int)(Math.random()*255);
Color endColor = new Color(red,green,blue);
GradientPaint gradient = new GradientPaint(70,70,startColor,150,150,endColor);
g2d.setPaint(gradient);
g.fillOval(70, 70, 100, 100);
}
}