Java圖像處理之RGB調(diào)色面板
本文實例為大家分享了Java圖像處理之RGB調(diào)色面板的具體代碼,供大家參考,具體內(nèi)容如下
一、概述
因為我們知道顏色是由R、G、B、三種顏色所組成的,那么我們只需要更改這三個的數(shù)值。我們就可以實現(xiàn)一個簡單的調(diào)色面板;以下是代碼演示:
二、代碼
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調(diào)色面板"); ? ? // 一個用于設(shè)置RGB調(diào)色,一個用于顯示背景顏色 ? ? 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); ? ? ? ? // 設(shè)置固定位置 ? ? ? ? jf.setBounds(200,200,500,600); ? ? ? ? jp_1.setBounds(0,0,200,600); ? ? ? ? // 設(shè)置字體位置 ? ? ? ? jl_1.setBounds(50,30,50,30); ? ? ? ? jl_2.setBounds(50,180,50,30); ? ? ? ? jl_3.setBounds(50,330,50,30); ? ? ? ? // 設(shè)置字體大小 ? ? ? ? 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按鈕,監(jiān)聽事件 ?? ??? ?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()); ? ? ? ? ? ? ? ? ?// 這里進行取余運算,是為了防止輸入的數(shù)過于大,而產(chǎn)生運行上的錯誤; ? ? ? ? ? ? ? ? ?r = r%256; ? ? ? ? ? ? ? ? ?g = g%256; ? ? ? ? ? ? ? ? ?g = g%256; // ? ? ? ? ? ? ? ?System.out.println("r = "+r +" ,g = "+g +" ,b = "+b); ? ? ? ? ? ? ? ? // 清空Text中的內(nèi)容 ? ? ? ? ? ? ? ? jtf_1.setText(""); ? ? ? ? ? ? ? ? jtf_2.setText(""); ? ? ? ? ? ? ? ? jtf_3.setText(""); ? ? ? ? ? ? ? ? // 一定要在這里設(shè)置改變顏色才可以,不然沒有反應(yīng) ? ? ? ? ? ? ? ? jp_2.setBackground(new Color(r,g,b)); ?? ??? ??? ?} ?? ??? ?}); ? ? } ? ? public static void main(String[] args) { ? ? ? ? new RgbJpanel(); ? ? } }
三、結(jié)果演示
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java Swing中的表格(JTable)和樹(JTree)組件使用實例
這篇文章主要介紹了Java Swing中的表格(JTable)和樹(JTree)組件使用實例,本文同時講解了表格和樹的基本概念、常用方法、代碼實例,需要的朋友可以參考下2014-10-10MyBatis 參數(shù)類型為String時常見問題及解決方法
這篇文章主要介紹了MyBatis 參數(shù)類型為String時常見問題及解決方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03servlet之cookie簡介_動力節(jié)點Java學(xué)院整理
Cookie技術(shù)誕生以來,它就成了廣大網(wǎng)絡(luò)用戶和Web開發(fā)人員爭論的一個焦點。下面這篇文章主要給大家介紹了關(guān)于servlet之cookie簡介的相關(guān)資料,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07Spring MVC+FastJson+Swagger集成的完整實例教程
這篇文章主要給大家分享介紹了關(guān)于Spring MVC+FastJson+Swagger集成的完整實例教程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04將RestTemplate的編碼格式改為UTF-8,防止亂碼問題
這篇文章主要介紹了將RestTemplate的編碼格式改為UTF-8,防止亂碼問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10Spring?boot?security權(quán)限管理集成cas單點登錄功能的實現(xiàn)
這篇文章主要介紹了Spring?boot?security權(quán)限管理集成cas單點登錄,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03