您好,登錄后才能下訂單哦!
小編給大家分享一下如何實現java-RGB調色面板,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
題目要求:
要求寫一個案例,使用三個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(); } }
看完了這篇文章,相信你對“如何實現java-RGB調色面板”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。