首页 > 编程语言 >教你用Java实现动态调色板

教你用Java实现动态调色板

时间:2022-12-22 10:31:27浏览次数:53  
标签:Java 滑块 教你用 调色板 private 127 组件 new

案例介绍

欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用Java编程实战案例,做一个动态调色板。案例界面会出现三个滑动组块以及对应的数值,通过移动滑块可以改变颜色区域的显示。通过实战我们将学会组件的使用以及新的事件接口ChangeListener。

案例演示

界面开始显示的是调色板的默认颜色数值,然后通过左右移动三个滑块可以改变R、G、B的数值,进而改变颜色的显示。

源码学习

进入核心代码学习,我们先来声明案例界面的组件变量。

<!-- 有个小院-兴趣编程 -->
//定义窗体
private JFrame jf;
//定义用于显示R,G,B的组件
private JLabel label1,label2,label3;
//定义颜色值变换的滑块组件
private JSlider slider1,slider2,slider3;
//显示当前每个滑块的值
private JTextField field1,field2,field3;
//显示颜色的区域
private JTextArea jta;

然后再让我们来看组件的初始化,这些实现可以写在无参数的构造方法中。

//有个小院-兴趣编程
public MyColorChooser() {
jf=new JFrame("动态调色板");
label1=new JLabel("R:");
label2=new JLabel("G:");
label3=new JLabel("B:");

slider1=new JSlider(0,255,127);
slider2=new JSlider(0,255,127);
slider3=new JSlider(0,255,127);

field1=new JTextField("127");
field2=new JTextField("127");
field3=new JTextField("127");

//设置滑块不可编辑
field1.setEditable(false);
field2.setEditable(false);
field3.setEditable(false);

jta=new JTextArea(5,10);
jta.setEditable(false);
jta.setBackground(new Color(127,127,127));
init();
addEventHandler();
}

让我们来编写核心的Java代码,窗体构建完成就需要对相应的组件添加事件。本案例通过新的事件接口ChangeListener,该接口继承于EventListener接口,为了定义一个监听ChangeEvent对象。另外当改变滑块的位置时,就会调用stateChanged(ChangeEvent arg0)方法,通过getValue()方法即可获得相应的数值,进而动态的调节颜色。

//有个小院-兴趣编程
private void addEventHandler() {
// TODO Auto-generated method stub
//事件接口
ChangeListener lis=new ChangeListener() {

@Override
public void stateChanged(ChangeEvent e) {
// TODO Auto-generated method stub
int r=slider1.getValue();
int g=slider2.getValue();
int b=slider3.getValue();

field1.setText(r+"");
field2.setText(g+"");
field3.setText(b+"");

Color c=new Color(r,g,b);
jta.setBackground(c);
}
};
//给滑块组件添加监听事件
slider1.addChangeListener(lis);
slider2.addChangeListener(lis);
slider3.addChangeListener(lis);
}

记得关注我,每天学习一点点

你觉得动态调色板能应用到什么地方?

全网可搜:小院里的霍大侠, 免费获取简单易懂的实战编程案例。编程/就业/副业/创业/资源。

标签:Java,滑块,教你用,调色板,private,127,组件,new
From: https://blog.51cto.com/huodaxia/5962403

相关文章

  • Java 中 int 和 Integer 的区别,为什么要有包装类?
    前言Java是一门强类型语言,所以在Java中,所有的数据都必须有自己的数据类型,这就像“山姆商店”的会员制一样,你是会员才能进入,在Java中也是如此,每一个数据必须有自己的......
  • MyEclipse技术全面解析——不脱离Java IDE的Maven项目管理
    从JavaIDE内部管理项目和构建,标准的项目结构、简化的POM编辑和内置于MyEclipse菜单中的启动命令使Maven项目管理触手可及。MyEclipsev2022.1.0正式版下载通过单击管理M......
  • 界面控件DevExpress WinForm v22.1——拥有全新的WXI调色板
    DevExpressWinForm拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风......
  • JavaSE-day04-基本概念-数据类型&标识符&键盘录入
    Java基本概念本章包含数据类型,标识符以及键盘录入!数据类型数据类型的分类1.基本数据类型Java中基本数据类型分为4类8种。1.整数:byte,short,int,long细节:整数的......
  • JavaSE-day01-Java入门
    Java的三大使用平台Java有三大平台:JavaSE,JavaEE,JavaMEJavaSE介绍JavaSE是Java语言的标准版,用于桌面应用的开发,是其他两个版本的基础。桌面应用用户只要打......
  • Java学习笔记4
    1.循环进阶1.1无限循环概念:​ 循环一直停不下来,又叫死循环。for格式:for(;;){循环语句;}while格式:while(true){循环语句;}do...while格式:do{......
  • Java 程序员常用资源网站集合
    搜索资源网站学习技术过程我们经常需要使用搜索引擎来检索资料,国内常用的也就是某度了。当然有条件的话,搜索引擎首先还是推荐使用Google,如果没办法使用,可以使用以下几个作......
  • Java学习
    下载 一般使用Java8或Java11 https://www.oracle.com/cn/java/technologies/downloads/#java8-windows安装安装路径不要有空格或中文https://zhuanlan.zhihu.com/p/3......
  • Javaweb 登陆与验证码
    本次记录分角色登陆以及验证码的Servlet。1.登陆验证<html><%--CreatedbyIntelliJIDEA.User:jiachenglinDate:2022/11/11Time:14:31Tochangethis......
  • javaScript中??和?.简记
    ??表示:只有当左侧为null和undefined时,才会返回右侧的数;空值合并操作符(??)是一个逻辑操作符,当左侧的操作数为[null]或者[undefined]时,返回其右侧操作数,否则返回左侧操作数;......