本文实例为大家分享了Java图像处理之RGB调色面板的具体代码,供大家参考,具体内容如下
一、概述因为我们知道颜色是由R、G、B、三种颜色所组成的,那么我们只需要更改这三个的数值。我们就可以实现一个简单的调色面板;以下是代码演示:
二、代码import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.*;
public class RgbJpanel {
int r,g,b;
JFrame jf = new JFrame("RGB调色面板");
// 一个用于设置RGB调色,一个用于显示背景颜色
JPanel jp_1 = new JPanel();
JPanel jp_2 = new JPanel();
JLabel jl_1 = new JLabel("R值");
JLabel jl_2 = new JLabel("G值");
JLabel jl_3 = new JLabel("B值");
JTextField jtf_1 = new JTextField();
JTextField jtf_2 = new JTextField();
JTextField jtf_3 = new JTextField();
JButton jb = new JButton("确定");
public RgbJpanel(){
button();
// 使用自定义布局管理器
jp_1.setLayout(null);
jf.setLayout(null);
// 设置固定位置
jf.setBounds(200,200,500,600);
jp_1.setBounds(0,0,200,600);
// 设置字体位置
jl_1.setBounds(50,30,50,30);
jl_2.setBounds(50,180,50,30);
jl_3.setBounds(50,330,50,30);
// 设置字体大小
jl_1.setFont(new Font("黑体",Font.BOLD,20));
jl_2.setFont(new Font("黑体",Font.BOLD,20));
jl_3.setFont(new Font("黑体",Font.BOLD,20));
jtf_1.setBounds(50,70,50,50);
jtf_2.setBounds(50,220,50,50);
jtf_3.setBounds(50,370,50,50);
jb.setBounds(50,440,80,40);
jp_2.setBounds(300,200,150,150);
jp_1.setBackground(new Color(150,150,150));
jp_1.add(jl_1);
jp_1.add(jl_2);
jp_1.add(jl_3);
jp_1.add(jtf_1);
jp_1.add(jtf_2);
jp_1.add(jtf_3);
jp_1.add(jb);
jf.add(jp_1);
jf.add(jp_2);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
// 按钮
public void button(){
// jb按钮,监听事件
jb.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent e){
r = Integer.parseInt(jtf_1.getText());
g = Integer.parseInt(jtf_2.getText());
b = Integer.parseInt(jtf_3.getText());
// 这里进行取余运算,是为了防止输入的数过于大,而产生运行上的错误;
r = r%256;
g = g%256;
g = g%256;
// System.out.println("r = "+r +" ,g = "+g +" ,b = "+b);
// 清空Text中的内容
jtf_1.setText("");
jtf_2.setText("");
jtf_3.setText("");
// 一定要在这里设置改变颜色才可以,不然没有反应
jp_2.setBackground(new Color(r,g,b));
}
});
}
public static void main(String[] args) {
new RgbJpanel();
}
}
三、结果演示