小编给大家分享一下如何实现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调色面板”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
文章标题:如何实现java-RGB调色面板
当前网址:http://scyingshan.cn/article/jihhcg.html