首页 > 代码库 > GUI之动态颜色图形

GUI之动态颜色图形

技术分享技术分享

import java.awt.*;    //存放了Graphicsimport javax.swing.*;   //JFrame所在,包含以许多J开头的控件import java.awt.event.*;    //各种“事件”public class SimpleGui3C implements ActionListener {    JFrame frame;    public static void main(String[] args) {        SimpleGui3C gui = new SimpleGui3C();  //创建主类        gui.go();    //调用GUI函数    }        public void go() {        frame = new JFrame();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //这一行程序会在window关闭时把程序结束掉                JButton button = new JButton("Change colors");    //创建带文本的按钮控件        button.addActionListener(this);    //将一个 ActionListener 添加到按钮中this指监听器就是本身                MyDrawPanel drawPanel = new MyDrawPanel();                frame.getContentPane().add(BorderLayout.SOUTH, button);    //JFrame可分为5个部分,        frame.getContentPane().add(BorderLayout.CENTER, drawPanel);        frame.setSize(300, 300);    //设置窗体大小        frame.setVisible(true);        //设置控件为显示状态    }    public void actionPerformed(ActionEvent event) {        frame.repaint();    //重绘此组件。如果此组件是轻量级组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的 update 方法。     }    //将实现的接口内的方法覆盖掉}class MyDrawPanel extends JPanel {    /*        创建JPanel的子类并覆盖掉paintComponent()这个方法。        所有的绘图程序代码都在paintComponent()里面。        当你的panel所处的frame显示的时候,paintComponent()就会被调用。        如果用户缩小window或选择最小化,java虚拟机也会知道要调用它来重置        你不能自己调用这个方法,它的参数是个跟实际屏幕有观的Graphics对象。        你无法取得这个对象,它必须由系统交给你。        你可以调用repaint()来要求系统重新绘制显示装置,然后才会产生paintCompon()的调用    */    public void paintComponent(Graphics g) {        g.fillRect(0, 0, this.getWidth(), this.getHeight());    //Graphics带有默认颜色,此函数功能是填充指定的矩形        int red = (int)(Math.random() * 225);            int green = (int)(Math.random() * 225);        int blue = (int)(Math.random() * 225);                Color randomColor = new Color(red, green, blue);        g.setColor(randomColor);        g.fillOval(70, 70, 100, 100);    //此函数功能是使用当前颜色填充外接指定矩形框的椭圆。     }

 

GUI之动态颜色图形