效果如下图所示:

可通过自己设置左边颜色rgb值进行调整,也可以通过滑动右边滚动条的位置进行控制。左边文本框的值和右边滚动条的位置联动(即左边数值变了,则右边对应滚动条位置也会跟着变,同理,右边滚动条位置变化,左边对应数值也会变化)

下面贴上代码

package com.hcj.july22.am;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Scrollbar;
import java.awt.TextField;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import java.awt.event.WindowAdapter;import javax.xml.ws.handler.MessageContext.Scope;public class TestColorPalette implements AdjustmentListener, TextListener {//rgb值private int r = 255;private int g = 255;private int b = 255;//最上方显示颜色的容器private Panel display; //颜色值文本框private TextField rColor = new TextField("255");private TextField gColor = new TextField("255");private TextField bColor = new TextField("255");//滚动条private Scrollbar sbr;private Scrollbar sbg ;private Scrollbar sbb ;//初始化public void init(){Frame f = new Frame("调色板");f.setLayout(new BorderLayout(5, 5));//最上面的颜色显示部分display = new Panel();display.setBackground(Color.white);f.add(display, "Center");//下方设置容器Panel set = new Panel(new GridLayout(1, 2, 5, 5));f.add(set, "South");//左边属性panelPanel color = new Panel(new GridLayout(3, 2, 5, 5));rColor.addTextListener(this);gColor.addTextListener(this);bColor.addTextListener(this);rColor.setName("rColor");gColor.setName("gColor");bColor.setName("bColor");color.add(new Label("   红色:"));color.add(rColor);color.add(new Label("   绿色:"));color.add(gColor);color.add(new Label("   蓝色:"));color.add(bColor);set.add(color, "West");//右边滚动条,构造一个新的滚动条,它具有指定的方向、初始值、可见量、最小值和最大值。Panel pc = new Panel(new GridLayout(3, 1, 5, 5));sbr = new Scrollbar(Scrollbar.HORIZONTAL, 255, 0, 0, 255);sbg = new Scrollbar(Scrollbar.HORIZONTAL, 255, 0, 0, 255);sbb = new Scrollbar(Scrollbar.HORIZONTAL, 255, 0, 0, 255);//注册监听器sbr.addAdjustmentListener(this);sbg.addAdjustmentListener(this);sbb.addAdjustmentListener(this);sbr.setName("sbr");sbg.setName("sbg");sbb.setName("sbb");pc.add(sbr);pc.add(sbg);pc.add(sbb);set.add(pc, "Center");f.addWindowListener(new WindowAdapter() {public void windowClosing(java.awt.event.WindowEvent e) {System.exit(0);};});f.setVisible(true);f.setSize(350, 280);f.setLocation(450, 200);}public static void main(String[] args) {TestColorPalette tc = new TestColorPalette();tc.init();}@Overridepublic void adjustmentValueChanged(AdjustmentEvent e) {// TODO Auto-generated method stub//获取发生监听事件的组件的名称String name = ((Scrollbar) e.getSource()).getName();//获取发送监听事件的组件的值int value = e.getValue();if(name.equals("sbr")){r = value;rColor.setText("" + r);}else if(name.equals("sbg")){g = value;gColor.setText("" + g);}else{b = value;bColor.setText("" + b);}changeColor();}@Overridepublic void textValueChanged(TextEvent e) {// TODO Auto-generated method stubString name = ((TextField) e.getSource()).getName();int value;if(name.equals("rColor")){value = Integer.parseInt(rColor.getText());r = value;sbr.setValue(value);}else if(name.equals("gColor")){value = Integer.parseInt(gColor.getText());g = value;sbg.setValue(value);}else{value = Integer.parseInt(bColor.getText());b = value;sbb.setValue(value);}changeColor();}public void changeColor(){Color c = new Color(r, g, b);display.setBackground(c);}
}

通过java程序写的一个调色板(rgb格式)相关推荐

  1. java将多个文件写入到一个文件流中再有规律的取出_编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指...

    满意答案 azonyb 2014.02.18 采纳率:59%    等级:12 已帮助:13223人 import java.io.BufferedInputStream; import java.i ...

  2. 基于JAVA集合写的一个梭哈游戏

    基于JAVA集合写的一个梭哈游戏. 游戏思路: 1,首先使用一个List数组保存一副无序的扑克牌(使用集合工具类) 2,使用一个Map集合和TreeSet集合保存玩家手上的手牌 3,使用一个Map集合 ...

  3. java定义一个学生类cstudent_编写一个JAVA程序片断 定义一个表示学生的类student

    编写一个JAVA程序片断定义一个表示学生的类student,包括域"学号","班级","姓名","性别","年 ...

  4. java 新建菜单选项_请完成下列Java程序:创建一个下拉式菜单,菜单项包括3个CheckboxM..._考试资料网...

    请完成下列Java程序:创建一个下拉式菜单,菜单项包括3个CheckboxMenultem(复选框),一条分割线和一个Exit项.要求打开或关闭复选框时,确定是哪个被切换,是开还是关,并输出它的状态: ...

  5. Java编写学生类student程序_编写一个JAVA程序片断定义一个表示学生的类student.docx...

    编写一个JAVA程序片断 定义一个表示学生的类student,包括域"学号","班级","姓名","性别"," ...

  6. java 如何跳到上一个循环_Java 代码优化 Java 如何写好 一个 for 循环

    Java 代码优化 Java 如何写好 一个 for 循环 Java 代码优化 Java 如何写好 一个 for 循环 看到这个标题可能吓一跳,观众可能会有如下的OS ......... 满脸的不屑, ...

  7. 编写Java程序,判断一个email地址是否合法

    编写Java程序,判断一个email地址是否合法(提示:只需要判断@和.即可) 源代码: package com.lzg.class4;public class Demo03 {public stat ...

  8. 通过java程序写一个简单的创造游戏角色的程序

    一.题目分析: 题目要求,编写一个简化的创造游戏角色的程序,游戏角色应有:姓名,性别,种族,职业,力量,敏捷,体力,智力,智慧,生命值,魔法值等属性. 题目思路:根据题目可知,无论创建什么种族角色,都 ...

  9. 让Java程序只运行一个实例

    一个程序可以在内存里面存在多个运行实例,比如,你可以打开多个微软的Word程序.但是,有些时候我们需要控制程序运行的实例只有一个,也就是说,该程序同一时刻在内存里面运行的只有一个实例.这样当这个程序在 ...

最新文章

  1. 第三周项目5-数组作数据成员
  2. 剩余大学时光里要做的事
  3. Android腾讯云直播开发,笔记:腾讯云直播SDK测试demo
  4. 奥维互动地图如何删除标签_奥维互动地图浏览器标签附件添加设置方法
  5. 大数据教程,大数据实战教程,大数据教程电信信号强度诊断项目实战
  6. python从1加到100的其中两种方式
  7. webfont应用系列(二)如何制作图标字体?
  8. 姓名降序排列语句c语言,sql语句升序降序排列20个
  9. python正则查找_python正则匹配
  10. 烤地瓜(PYTHON 学习类和对象)
  11. 触摸板把计算机从休眠状态唤醒,win10笔记本盒盖唤醒后触摸板失灵的处理方法...
  12. C#之windous界面应用编程
  13. DFRobot新推出一款适合短时间环境数据记录的Gravity: 串口数据记录器
  14. 华为P20 Pro对比iPhone X:谁更能拍出人像高级美?
  15. Vue组件:做一个表情输入键盘
  16. 百度地图框选标注坐标返回标注信息
  17. 编程的本质是逻辑性思维
  18. nmap 扫描局域网内的机器 扫描指定电脑的开放的端口
  19. linux恢复安卓数据,安卓数据恢复2 - ranfs的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. FPGA开发基本流程详解

热门文章

  1. 代理模式:aspectj静态代理和jdk,cglib的动态代理的对比
  2. 在Ubuntu20.10中搭建TFTP服务器
  3. 庞涓VS孙膑——一个很难的数学问题
  4. python学习笔记之-展平函数ravel和flatten及两者的区别
  5. 温度记录仪|概述|记录仪
  6. SQL中limit用法
  7. HTML-CSS-JavaScript综合
  8. K3对外通讯端口介绍及防火墙端口开放策略
  9. jsp常用的input type
  10. 《逆袭大学》文摘——7.1.2 中学生学习单片机的启发