欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類)

 更新時間:2019年11月11日 14:22:02   作者:Coder_Player  
這篇文章主要介紹了java-RGB調(diào)色面板的實現(xiàn)(事件監(jiān)聽器之匿名內(nèi)部類),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

題目要求:

要求寫一個案例,使用三個JSlider分別選取R、G、B三原色的值,用戶可以通過活動JSlider的滑塊來動態(tài)的合成一種顏色,合成的顏色顯示在界面上。

代碼思路解析:

1、所需要的組件

 (1)JFrame窗口
 (2)JLabel的RGB標(biāo)簽文字組件
 (3)JTextField顏色變動的數(shù)值
 (4)JSlider顏色交換的滑塊組件
 (5)JTextArea顏色顯示區(qū)域

2、構(gòu)造方法中將JFrame、JSlider、JTextField、JTextArea組件全部實例化

3、另寫一個方法將創(chuàng)建的所有的組件添加到相應(yīng)的面板中去,布局采用的是swing包中JPanel組件面板BorderLayout(東西南北中)的模式,用其中的東與中面板,其他的不寫

4、最重要的一步,我這里采用的是匿名內(nèi)部類的方法獨立寫了一個方法添加的時間監(jiān)聽器,具體寫法看代碼

5、寫一個方法將最外層的面板的尺寸,關(guān)閉窗口,還有最重要的關(guān)閉窗口setVisible(true),具體解釋如下:

setVisible(true);方法的意思是說數(shù)據(jù)模型已經(jīng)構(gòu)造好了,允許JVM可以根據(jù)數(shù)據(jù)模型執(zhí)行paint方法開始畫圖并顯示到屏幕上了,并不是顯示圖形,而是可以運(yùn)行開始畫圖了。這個方法和java多線程的start方法有點異曲同工之妙,start方式是允許run方法運(yùn)行了,start方法和setVisible方法很相似。

6、將寫的方法全部寫到構(gòu)造方法的末尾,記住一點順序最重要,順序如下:

7、將組件添加到面板才能調(diào)用時間監(jiān)聽器方法,否則后果自己看。

8、最后一步,在主方法中將所有方法都放在構(gòu)造方法進(jìn)行實例化創(chuàng)建對象即可完成

具體代碼如下:

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) {
 //構(gòu)造方法這樣寫調(diào)用對象,不用構(gòu)造對象去調(diào)用方法,構(gòu)造方法中末尾已經(jīng)寫過其他的方法
 ZuoYe ts = new ZuoYe();
// ts.showMe();
// ts.init();
 }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java狀態(tài)機(jī)方案解決訂單狀態(tài)扭轉(zhuǎn)示例詳解

    java狀態(tài)機(jī)方案解決訂單狀態(tài)扭轉(zhuǎn)示例詳解

    這篇文章主要為大家介紹了java狀態(tài)機(jī)方案解決訂單狀態(tài)扭轉(zhuǎn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • Java實現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)

    Java實現(xiàn)基礎(chǔ)銀行ATM系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)基礎(chǔ)銀行ATM系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java String類用法詳解

    Java String類用法詳解

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識,文章圍繞著Java String類用法展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Mybatis和orcale update語句中接收參數(shù)為對象的實例代碼

    Mybatis和orcale update語句中接收參數(shù)為對象的實例代碼

    Mybatis的 mapper.xml 中 update 語句使用 if 標(biāo)簽判斷對像屬性是否為空值。本文重點給大家介紹Mybatis和orcale update語句中接收參數(shù)為對象的實例代碼,需要的朋友參考下吧
    2017-09-09
  • Java隨機(jī)數(shù)算法原理與實現(xiàn)方法實例詳解

    Java隨機(jī)數(shù)算法原理與實現(xiàn)方法實例詳解

    這篇文章主要介紹了Java隨機(jī)數(shù)算法原理與實現(xiàn)方法,簡單分析了隨機(jī)數(shù)算法的原理并結(jié)合具體實例形式給出了java編程計算隨機(jī)數(shù)的具體操作技巧,需要的朋友可以參考下
    2017-09-09
  • java開發(fā)CPU流水線與指令亂序執(zhí)行詳解

    java開發(fā)CPU流水線與指令亂序執(zhí)行詳解

    這篇文章主要為大家介紹了java開發(fā)CPU流水線與指令亂序執(zhí)行詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Spring?Native打包本地鏡像的操作方法(無需通過Graal的maven插件buildtools)

    Spring?Native打包本地鏡像的操作方法(無需通過Graal的maven插件buildtools)

    這篇文章主要介紹了Spring?Native打包本地鏡像,無需通過Graal的maven插件buildtools,本文探索一下,如果不通過這個插件來生成鏡像,結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • SpringMVC基于注解的Controller詳解

    SpringMVC基于注解的Controller詳解

    這篇文章主要介紹了SpringMVC基于注解的Controller詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • springboot整合shiro之thymeleaf使用shiro標(biāo)簽的方法

    springboot整合shiro之thymeleaf使用shiro標(biāo)簽的方法

    Thymeleaf 是一個跟 Velocity、FreeMarker 類似的模板引擎,它可以完全替代 JSP ,這篇文章主要介紹了springboot整合shiro之thymeleaf使用shiro標(biāo)簽的相關(guān)知識,需要的朋友可以參考下
    2021-10-10
  • Java比較兩個對象大小的三種方法詳解

    Java比較兩個對象大小的三種方法詳解

    在優(yōu)先級隊列中插入的元素必須能比較大小,如果不能比較大小,如插入兩個學(xué)生類型的元素,會報ClassCastException異常。本文就為大家總結(jié)了Java比較兩個對象大小的三種方法,需要的可以參考一下
    2022-07-07

最新評論