首頁 > 軟體

Java影象處理之RGB調色面板

2022-06-10 14:00:54

本文範例為大家分享了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();
    }
}

三、結果演示

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com