Java Swing类 颜色、按键状态判断例子代码
package rom;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.plaf.SliderUI;
/*
* 写一个会自动变色的按键
*/
public class Demo4 extends JFrame implements ActionListener,Runnable{
JPanel jPanel;
JButton jButton;
Thread thread;
static boolean off_on;
int h;
int s;
int b;
Color color1 = Color.YELLOW; //黄色
// 黑色 灰色 灰色 蓝色 青色
Color colors_data [][] = {{color1,Color.BLACK,Color.GRAY,Color.gray,Color.BLUE,Color.CYAN
,Color.DARK_GRAY//深灰色
,Color.GREEN //绿色
,Color.LIGHT_GRAY //浅灰
,Color.MAGENTA //品红
,Color.ORANGE //橙色
,Color.PINK //粉色
,Color.RED //红色
,Color.WHITE} //白色
,{Color.getHSBColor(h,s,b)}}; //使用HSB拾色器模式拾取色彩,可以直接百度HSB了解
public Demo4(String name) {
// TODO Auto-generated constructor stub
super(name);
thread = new Thread(this); //创建一个线程
jPanel = new JPanel(); //添加区域面板
jButton = new JButton("手动换颜色"); //添加按键
jPanel.setSize(180, 180); //设置区域面板快大小
jPanel.add(jButton,BorderLayout.CENTER); //添加按键并且设置按键位置在中央显示
add(jPanel,BorderLayout.CENTER); //添加Jpanel布局到jframe中,并且将位置设置在中央
jButton.addActionListener(this); //按键监听
setSize(200, 200); // 设置大小
setVisible(true); //显示框体
validate(); //刷新验证
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getActionCommand() == "手动换颜色") { //判断按键是否按下手动换颜色
off_on = false; //修改布尔值
h = (int)(Math.random()*361);
s = (int)(Math.random()*101);
b = (int)(Math.random()*101);
int i = (int)(Math.random()*2);
int j = (int)(Math.random()*2);
jButton.setBackground(colors_data[i][(int)(Math.random()*(colors_data[i].length))]); //设置按键背景颜色
jButton.setForeground(colors_data[j][(int)(Math.random()*(colors_data[j].length))]); //设置按键文本颜色
jButton.setText("自动换颜色"); //修改文本内容
}
else if (e.getActionCommand() == "自动换颜色") { //判断按键文本内容
off_on = true;
jButton.setText("手动换颜色"); //修改按键文本
if(!(thread.isAlive())) { //判断线程是否关闭了,如果没有线程就创建一个新线程
thread = new Thread(this); //创建新线程
}
thread.start(); //启动线程
}
}
public static void main(String[] args) {
new Demo4("就很帅");
}
@Override
public void run() { //线程运行内容
// TODO Auto-generated method stub
while (off_on) { //写一个while 循环修改按键颜色
h = (int)(Math.random()*361);
s = (int)(Math.random()*101);
b = (int)(Math.random()*101);
int i = (int)(Math.random()*2);
int j = (int)(Math.random()*2);
jButton.setBackground(colors_data[i][(int)(Math.random()*(colors_data[i].length))]); //设置按键背景颜色
jButton.setForeground(colors_data[j][(int)(Math.random()*(colors_data[j].length))]);
try {
thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
validate();
}
}
}
运行结果:
Java Swing类 颜色、按键状态判断例子代码的更多相关文章
- Java Swing类 例子代码:将子类继承JFrame 并且接口按键监听ActionLisetener (将内容直接添加到JFrame不创建Contaniner)
package rom; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import ...
- Delphi 判断按键状态
Delphi 判断按键状态 http://blog.sina.com.cn/s/blog_54da9cc001015di1.html (2012-04-05 14:22:50) 标签: 杂谈 分类: ...
- Java Swing 使用总结(转载)
随笔转载自:此去经年ぢ 地址:http://www.cnblogs.com/FLFL/p/5369756.html 1. GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在 ...
- java swing 添加 jcheckbox复选框
总体上而言,Java Swing编程有两大特点:麻烦.效果差. 麻烦是说由于设计器的使用不方便(如果您希望使用窗体设计器通过快速拖拽控件建立您的Java Swing GUI程序,请您使用MyEclip ...
- Java swing实现酒店管理系统
今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: packa ...
- 恶补Java Swing线程刷新UI机制(由浅到深的参考大佬博文)
1. java中进度条不能更新问题的研究 感谢大佬:https://blog.csdn.net/smartcat86/article/details/2226681 为什么进度条在事件处理过程中不更新 ...
- Java根类Object的方法说明
Java中的Object类是所有类的父类,它提供了以下11个方法: public final native Class<?> getClass() public native int ha ...
- Java设计模式(19)状态模式(State模式)
State的定义:不同的状态,不同的行为:或者说,每个状态有着相应的行为. 何时使用状态模式 State模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If else ...
- atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结
atitit.D&D drag&drop拖拽文件到界面功能 html5 web 跟个java swing c#.net c++ 的总结 1. DND的操作流程 1 2. Html5 注 ...
随机推荐
- Streaming SQL for Apache Kafka
KSQL是基于Kafka的Streams API进行构建的流式SQL引擎,KSQL降低了进入流处理的门槛,提供了一个简单的.完全交互式的SQL接口,用于处理Kafka的数据. KSQL是一套基于Apa ...
- 微信开发-业务域名、JS接口安全域名、网页授权域名
在微信公众平台上可配置这些域名. 1.业务域名:在微信浏览器中点击文本框,会弹出下面的提示,很不爽,通过配置业务域名可以将该提示去掉 2.JS接口安全域名:分享到朋友圈(js-sdk)时用上,此接口要 ...
- Azure ARM (18) 将Azure RM Manage Disk托管磁盘的Image,跨订阅迁移
<Windows Azure Platform 系列文章目录> 先挖一个坑,以后再埋. 最近遇到一个客户需求,客户使用了Azure RM Manage Disk托管磁盘,然后捕获镜像做成了 ...
- 黄聪: $(document).click() 在iphone上不触发事件解决办法
解决方案:加上 touchstart 事件 $(document).on(“click touchstart”, “.name”, function() { alert(“name”); });
- ALGO-17_蓝桥杯_算法训练_乘积最大(DP)
问题描述 今年是国际数学联盟确定的“——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加. ...
- PyQt—QTableWidget中的checkBox状态判断
一.QTableWidget实现checkBox效果 利用QTableWidgetItem对象的CheckState属性,既能显示QCheckBox,又能读取状态 table = QtGui.QTab ...
- 小程序支持打开APP
根据微信的官方文档,小程序支持打开APP,专门研究了下这个API有什么,官方文档地址如下 https://mp.weixin.qq.com/debug/wxadoc/dev/component/but ...
- spring4.0之一:简介
我们共同来构建更好的企业应用.Spring帮助全世界的开发团队构建简单.便携.快速和灵活的基于JVM的系统和应用.这两句话已经足以说明Spring的目标,它针对的领域是企业应用,这套框架构建的应用有着 ...
- 【ZZ】技能表合集
技能表 http://w.itcodemonkey.com/tag/373.html 1 当一名黑客应该学什么?来看看安全工程师技能表 2 软件测试工程师技能表 3 大数据.数据挖掘技能表 4 C/C ...
- VC的function类说明 -- 继续
我在之前的随笔中介绍了function如何保存参数,如何实现调用相关知识.对于一个函数对象或者函数指针来说,应该很容易理解.不过对于如何在function中保存类的成员函数,这个还是值得一说的. 还是 ...