值得练手的JavaGUI项目——色彩调节器的实现【附完整源码】

js_blue = new JSlider(0,255,0); //设置蓝色滑块

jp_slide.add(radtext);

jp_slide.add(js_red);

jp_slide.add(greentext);

jp_slide.add(js_green);

jp_slide.add(bluetext);

jp_slide.add(js_blue);

在进行滑块的设置中,我们用到了JSlider控件,也就是滑块控件,在该控件后面对应的三个参数分别是滑块的最小值,滑块的最大值,滑块初始时的默认位置,如代表红色RGB值的滑块,最小值是0,最大值是255,当程序运行时滑块默认处于的位置是255。

在第二个面板中摆放显示颜色RGB值的控件

//设置显示颜色色号控件

jt_red = new JTextArea(“255”);

jt_red.setFont(font1);

jt_green = new JTextArea(“0”);

jt_green.setFont(font1);

jt_blue = new JTextArea(“0”);

jt_blue.setFont(font1);

jp_color.add(jt_red);

jp_color.add(jt_green);

jp_color.add(jt_blue);

最后进行颜色显示区域的摆放

//设置颜色显示区域

colorLB = new JTable();

colorLB.setBackground(Color.red);

add(colorLB);

现在调色器中的控件基本上都设置已经完成了,来看一波效果图:

但是现在我们拖动滑块,在颜色显示区域是没有变化的,因为我们还没有给控件添加相应的事件监听。

接下来就是我们对红、绿、蓝三种滑块的RGB值进行监听,并且在RGB值显示区域和色彩显示区域作出相应的响应。

**在这里我们需要调用ChangeListener接口,**该接口是ChangeEvent事件的监听接口,ChangeEvent事件在组件值改变的时候会触发,就比如说我们这里用到的滑块的值改变。同时,继承ChangeListener 这个接口的类(监听者)需要重写stateChanged(ChangeEvent e1) 方法,在该方法中对事件进行处理。

在该项目的stateChanged(ChangeEvent e1) 方法中,我们需要获取到三种滑块的RGB值,然后将对应的数值和颜色在窗体进行显示:

@Override

public void stateChanged(ChangeEvent e) {

// TODO Auto-generated method stub

r = js_red.getValue(); //获取到红色滑块的RGB值

g = js_green.getValue(); //获取到绿色滑块的RGB值

b = js_blue.getValue(); //获取到蓝色滑块的RGB值

//将三种颜色的RGB值在窗体进行显示

jt_red.setText(Integer.toString®);

jt_green.setText(Integer.toString(g));

jt_blue.setText(Integer.toString(b));

//将对应的颜色进行显示

colorLB.setBackground(new Color(r, g, b));

}

同时在滑块控件上,我们也需要对三种滑块添加监听事件:

js_red.addChangeListener(this);

js_green.addChangeListener(this);

js_blue.addChangeListener(this);

现在,我们的调色器就基本已经完成了!

完整源码

====

最后附上完整源码:

package toning_device;

import java.awt.Color;

import java.awt.Container;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSlider;

import javax.swing.JTable;

import javax.swing.JTextArea;

import javax.swing.event.AncestorListener;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

//定义Toning_device类继承窗体类,并且实现接口ChangeListener 监控组件的值发生改变,如滑块的值

public class Toning_device extends JFrame implements ChangeListener{

//将控件设置为公有权限

public JSlider js_red,js_green,js_blue; //定义滑块控件

public JTable colorLB; //定义颜色显示的标签

public JTextArea jt_red, jt_green, jt_blue; //定义显示色号的控件

public int r,g,b; //定义整形数据表示红、绿、蓝色号

public static void main(String[] args) {

// TODO Auto-generated method stub

new Toning_device(); //调用该类,执行构造函数

}

public Toning_device(){

setTitle(“调色器”);

setSize(600, 300);

setLayout(new GridLayout(1,3)); //将窗体进行布局

Font font1 = new Font(“楷体”, Font.PLAIN, 20);

//设置一个面板,存放滑块

JPanel jp_slide = new JPanel(new GridLayout(3,2));

add(jp_slide);

//设置另一个面板,存放显示色号的控件

JPanel jp_color = new JPanel(new GridLayout(3,1));

add(jp_color);

//设置颜色提示标签

JLabel radtext = new JLabel(“红色”);

radtext.setFont(font1);

JLabel greentext = new JLabel(“绿色”);

greentext.setFont(font1);

JLabel bluetext = new JLabel(“蓝色”);

bluetext.setFont(font1);

js_red = new JSlider(0,255,255); //设置红色滑块

js_green = new JSlider(0,255,0); //设置绿色滑块

js_blue = new JSlider(0,255,0); //设置蓝色滑块

jp_slide.add(radtext);

jp_slide.add(js_red);

jp_slide.add(greentext);

jp_slide.add(js_green);

jp_slide.add(bluetext);

jp_slide.add(js_blue);

//设置显示颜色色号控件

jt_red = new JTextArea(“255”);

jt_red.setFont(font1);

jt_green = new JTextArea(“0”);

jt_green.setFont(font1);

jt_blue = new JTextArea(“0”);

jt_blue.setFont(font1);

jp_color.add(jt_red);

jp_color.add(jt_green);

jp_color.add(jt_blue);

//设置颜色显示区域

colorLB = new JTable();

colorLB.setBackground(Color.red);

add(colorLB);

js_red.addChangeListener(this);

js_green.addChangeListener(this);

js_blue.addChangeListener(this);

setVisible(true);

setLocationRelativeTo(null);

}

@Override

public void stateChanged(ChangeEvent e) {

// TODO Auto-generated method stub

r = js_red.getValue(); //获取到红色滑块的RGB值

g = js_green.getValue(); //获取到绿色滑块的RGB值

b = js_blue.getValue(); //获取到蓝色滑块的RGB值

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

[外链图片转存中…(img-s6UUaGP7-1713526135464)]

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

[外链图片转存中…(img-3F7verd4-1713526135464)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java源码包实例源码JAVA开发源码50个合集: Ajax框架 ZK.rar Java图书馆管理系统源程序.rar Java图片倒影效果实例源码.rar Java图片翻折,将图像压扁.rar Java坦克大战网络对战版源代码.rar Java声音播放程序源代码.rar JAVA实现CLDC与MIDP底层编程的代码.rar Java实现HTTP连接与浏览,Java源码下载.rar Java实现的FTP连接与数据浏览程序.rar Java实现的放大镜效果有源文件.rar Java实现的点对点短消息发送协议(smpp)开发包源码.rar Java实现的视频播放程序源码.rar Java实现移动的遮照效果.rar JAVA实现超级玛丽.zip Java实现跟踪鼠标运行坐标的源码.rar Java手机与计算机互发彩信源码.rar Java手机游戏大富翁源代码+注释.rar Java手机短信项目源码.rar Java扫雷源码.rar Java生成自定义控件源代码.rar Java调色板面板源代码.rar Java跳棋(基于SWT).rar Java通讯录手机版源码.rar Java鼠标拖拽功能.rar 乐趣大型购物系统.rar 可实现网上对战和人机对战.rar 基于BS结构的Java可视化工作流定制软件.rar 基于J2ME的Java游戏梦幻炸弹人源程序.rar 基于JAVA的ICQ系统.rar 基于Java的mp3播放器源代码.rar 基于Java的小型人事管理系统,带数据库.rar 基于JAVA的日程提醒簿.rar 基于Java的邮件服务器源程序.rar 基于MVC的Java资源管理器 v2.0.rar 基于smpp协议的Java点对点短信发送源码包.rar 季风进销存管理系统(JSP版).rar 客户管理系统 Alfresco Content Management.rar 家庭多媒体播放器.rar 局域网广播系统java源码.rar 开源Winzip压缩工具Java源码.rar 很不错的Java计算器.rar 很强的Java加密解密算法源码.rar 泡泡堂战车游戏JAVA源码.rar 简单模拟的J2ME潜艇大战源代码.rar 简单的注册与登录功能.rar 类似QQ的聊天软件JAVA源码设计文档).rar 进程通信.rar 连接postsql数据库的java代码.rar 加数据库.rar 雷电游戏JAVA版源程序.rar

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值