按下按钮圆圈改变颜色

来源:互联网 发布:dht网络bt 编辑:程序博客网 时间:2024/05/20 21:47
import sun.jvm.hotspot.types.JBooleanField;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class TestDemo implements ActionListener {    JFrame frame;    public static void main(String args[]){        TestDemo gui = new TestDemo();        gui.go();    }    public void go(){        frame = new JFrame();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        JButton button = new JButton("Change colors");        button.addActionListener(this);        MyDrawPane drawPane = new MyDrawPane();        frame.getContentPane().add(BorderLayout.SOUTH,button);        frame.getContentPane().add(BorderLayout.CENTER,drawPane);        frame.setSize(300,300);        frame.setVisible(true);    }    public void actionPerformed(ActionEvent event){        frame.repaint();//当按下按钮时要求frame重新绘制    }}class MyDrawPane extends JPanel{    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 gradientPaint = new GradientPaint(70,70,startColor,150,150,endColor);        g2d.setPaint(gradientPaint);        g2d.fillOval(70,70,100,100);//用目前的笔刷设定来填满椭圆型区域    }}

这里写图片描述

0 0