java-RGB调色面板的实现(事件监听器之匿名内部类)

所属分类: 软件编程 / java 阅读数: 162
收藏 0 赞 0 分享

题目要求:

要求写一个案例,使用三个JSlider分别选取R、G、B三原色的值,用户可以通过活动JSlider的滑块来动态的合成一种颜色,合成的颜色显示在界面上。

代码思路解析:

1、所需要的组件

 (1)JFrame窗口
 (2)JLabel的RGB标签文字组件
 (3)JTextField颜色变动的数值
 (4)JSlider颜色交换的滑块组件
 (5)JTextArea颜色显示区域

2、构造方法中将JFrame、JSlider、JTextField、JTextArea组件全部实例化

3、另写一个方法将创建的所有的组件添加到相应的面板中去,布局采用的是swing包中JPanel组件面板BorderLayout(东西南北中)的模式,用其中的东与中面板,其他的不写

4、最重要的一步,我这里采用的是匿名内部类的方法独立写了一个方法添加的时间监听器,具体写法看代码

5、写一个方法将最外层的面板的尺寸,关闭窗口,还有最重要的关闭窗口setVisible(true),具体解释如下:

setVisible(true);方法的意思是说数据模型已经构造好了,允许JVM可以根据数据模型执行paint方法开始画图并显示到屏幕上了,并不是显示图形,而是可以运行开始画图了。这个方法和java多线程的start方法有点异曲同工之妙,start方式是允许run方法运行了,start方法和setVisible方法很相似。

6、将写的方法全部写到构造方法的末尾,记住一点顺序最重要,顺序如下:

7、将组件添加到面板才能调用时间监听器方法,否则后果自己看。

8、最后一步,在主方法中将所有方法都放在构造方法进行实例化创建对象即可完成

具体代码如下:

package create;

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class ZuoYe {
 private JFrame jf;
 private JLabel label1, label2, label3;
 private JSlider slider1, slider2, slider3;
 private JTextField field1, field2, field3;
 private JTextArea jta;

 public ZuoYe() {
 jf = new JFrame();
 label1 = new JLabel("R:");
 label2 = new JLabel("\n 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();
 showMe();
 addEventHandler();
 }

 public void init() {
 JPanel jp1 = new JPanel();
 jp1.add(label1);
 jp1.add(slider1);
 jp1.add(field1);

 jp1.add(label2);
 jp1.add(slider2);
 jp1.add(field2);

 jp1.add(label3);
 jp1.add(slider3);
 jp1.add(field3);

 JPanel jp2 = new JPanel();
 jp2.add(jta);

 jf.add(jp1, BorderLayout.CENTER);
 jf.add(jp2, BorderLayout.EAST);
 jf.setVisible(true);
 }

 public void showMe() {
 jf.setSize(400, 200);
 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 }

 public void addEventHandler() {
 ChangeListener lis = new ChangeListener() {

  public void stateChanged(ChangeEvent arg0) {
  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);
 }

 public static void main(String[] args) {
 //构造方法这样写调用对象,不用构造对象去调用方法,构造方法中末尾已经写过其他的方法
 ZuoYe ts = new ZuoYe();
// ts.showMe();
// ts.init();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

JavaWeb项目部署到服务器详细步骤详解

这篇文章主要介绍了JavaWeb项目如何部署到服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

IDEA基于支付宝小程序搭建springboot项目的详细步骤

这篇文章主要介绍了IDEA基于支付宝小程序搭建springboot项目的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解SpringBoot应用服务启动与安全终止

这篇文章主要介绍了SpringBoot应用服务启动与安全终止,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Boot启动及退出加载项的方法

这篇文章主要介绍了Spring Boot启动及退出加载项的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring Data Jpa 自动生成表结构的方法示例

这篇文章主要介绍了Spring Data Jpa 自动生成表结构的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

IDEA中osgi的开发应用指南详解

这篇文章主要介绍了IDEA中osgi的开发应用指南详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解用maven将dubbo工程打成jar包运行

这篇文章主要介绍了详解用maven将dubbo工程打成jar包运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解Java合并数组的两种实现方式

这篇文章主要介绍了Java合并数组的两种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

使用Jenkins Pipeline自动化构建发布Java项目的方法

这篇文章主要介绍了使用Jenkins Pipeline自动化构建发布Java项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

使用Maven配置Spring的方法步骤

这篇文章主要介绍了使用Maven配置Spring的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享
查看更多