小编给大家分享一下如何实现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调色面板”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联网站建设公司行业资讯频道,感谢各位的阅读!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。