GUI之动态颜色图形

import java.awt.*;    //存放了Graphics
import 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);    //此函数功能是使用当前颜色填充外接指定矩形框的椭圆。
    }
时间: 2024-10-28 19:39:17

GUI之动态颜色图形的相关文章

2017/12/30 GUI和动态代理

1.字节流可以读取所有文件,而字符流只能读取文本文件:2.接口(方法比较多)---适配器类(实现接口,仅仅空实现)---实现类(用哪个重写那个)3.控制台运行java代码,先找到路径,javac 包名.类名.java 再 java 类名4.如何让Netbeans的东西Eclipse能访问. 在Eclipse中创建项目,把Netbeans项目的src下的东西给拿过来即可. 注意:修改项目编码为UTF-8 5.GUI(了解) (1)用户图形界面 GUI:方便直观 CLI:需要记忆一下命令,麻烦 (2

前端/h5 D3.js实现根据数据动态更新图形/类似进度实时变化效果

最近接到一个需求,在满足规则下,实现类似这种展示效果,其实就是用图形反映数据(NK,一种干扰值) 运行后,它其实是不断在动的,每格都可能显示灰色或者彩色 这里一共是10个格子,每格代表一个范围边界,说明如下 规则:颜色条設定,共十格 N = 1 - 10,边界值 max value = 2^(N/2) 并取小数点第一位进行四舍五入,得到一组边界值:1/2/3/4/6/8/11/16/23/32,最后一格沒有上限=24~无限大 即是說,数值等于或大于24,到无限大,属于第十級(格).另外,达到的格

GUI label 文本颜色大小修改

void OnGUI() { GUIStyle style = new GUIStyle(); //实例化一个新的GUIStyle,名称为style ,后期使用 style.fontSize = 50; //字体的大小设置数值越大,字越大,默认颜色为黑色 style.normal.textColor=new Color(0,2,4); //设置文本的颜色为 新的颜色(0,0,0)修改值-代表不同的颜色,值为整数 我个人觉得有点像RGB的感觉 GUI.Label(new Rect(10, 10,

C#编写Unity基础GUI之动态窗口

1.创建窗口 1 //声明窗口位置大小 2 private Rect pos = new Rect(10,60,120,50); 3 4 //回调函数 5 void Wincallback(int id) 6 { 7 if(GUI.Button(new Rect(10,20,100,20),"窗口内按钮")){ 8 print("按钮在窗口内被单击"); 9 } 10 } 11 12 void OnGUI() 13 { 14 pos = GUI.Window(0,

Go与GUI——GO语言的图形界面Walk

GO没有原生的界面库,所以不能直接用来写GUI界面.但最近互联网上已经涌现出不少成熟.好用的第三方界面库.使用它们,就同样可以写出同C#.C++的界面.而且效率还更胜一筹. 关于Walk界面库(官方介绍): Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西. Part One:安装Walk 在浏览这部分前,请确定已经配置安装完毕go语言的环境.如果没有,可以参考go官网的Install帮助.另外,注意:这个Walk库只能运行在Go 1.1.

C#+JQuery+.Ashx+百度Echarts 实现全国省市地图和饼状图动态数据图形报表的统计

在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈现的需求,经过几轮挑选,最终选择了百度的echarts作为报表基础类库.echarts功能强大,界面优美.由于客户是淘宝卖家,因此想要实现每个月全国各个省份各自购力如何,大家可以统计其他的,如果GDP 人口 等等. 百度echarts简介请参考 http://echarts.coding.io/doc/example.html 效果图如下:全部是动态数据 JS代码: <!-- Charts La

【Java】_图形用户界面(GUI)

学习资料来源:斯坦福大学公开课编程方法cs106aJAVA 学习过程中使用的代码.笔记初稿(主要按顺序记录视频教程讲解内容)以及课程讲义已上传至下载中心(有兴趣者可自行下载学习), 学习过程中的大部分程序需要导入acm.jar包(已上传至下载中心,也可自行进入http://jtf.acm.org/ 进行下载), GObject: super()--调用父类构造函数 acm.graphics--添加进画布中的图形是有堆叠顺序的 GCanvas--拼贴画的背景画布 画布(GCanvas)和图形程序(

esri-leaflet入门教程(5)- 动态要素加载

esri-leaflet入门教程(5)- 动态绘制图形 by 李远祥 在上一章节中已经说明了esr-leaflet是如何加载ArcGIS Server提供的各种服务,这些都是服务本身来决定的,API脚本只是非常简单的调用.但如果要做一列的地图交互操作或者动态渲染等,那就必须使用地图区域跳转.查询结果渲染.动态添加图形等多种交互手段.而这些交互手段基本上离不开一些非服务类型的数据加载,我们可以将其成为动态要素.动态要素一般是在页面端进行动态绘制的. 动态要素这一说法并不是ArcGIS 或者leaf

MATLAB的GUI

1 % 常使用的对象查看和设置函数 2 % 1.get.set函数 3 get(0) % 获得句柄值为0的对象的属性,即显示器对象属性 4 5 plot([0:10]); % 绘制一幅图 6 title('示例'); % 增加text对象 7 8 % 获得figure的所有子对象 9 allchild(gcf) 10 11 % 查看子对象类型 12 get(ans(1)) % type属性可以看到子对象类型 13 14 % 获得静态文本“示例”的句柄并进行设置 15 h = findobj(al