本文共 2773 字,大约阅读时间需要 9 分钟。
查看运行效果图,会发现界面比较丑,字迹模糊,文本框小。
那么接下来本节将会对界面进行一些简单的装饰,设置些样式。
在colorpicker包下创建一个Styles类,专门来放置一些设置的样式。
在Styles类中添加如下方法:
/** * 设置按钮的样式 * * @param buttons 按钮组 */ public void setButton(JButton... buttons) { for (JButton button : buttons) { // 设置按钮的字体 button.setFont(new Font("微软雅黑", Font.PLAIN, 20)); // 设置当鼠标放在按钮上的样式 button.setCursor(new Cursor(Cursor.HAND_CURSOR)); // 设置按钮的前景色 button.setForeground(Color.BLACK); // 设置按钮的背景色 button.setBackground(new Color(221, 232, 243)); // 设置按钮获取焦点后不显示线框 button.setFocusPainted(false); } }
再在主界面类Main中添加一个setFrameAllConponentStyles()方法:
其中内容如下:
/** * 设置界面一些组件的样式 */ private void setFrameAllConponentStyles(){ Styles styles=new Styles(); // 设置按钮的样式 styles.setButton(startColorPickerButton,hexToRgbButton,rgbToHexButton); }
把上面的工作做完后还是没有把这些样式用起来,因为虽然写好了实现方法,但是该方法还没有被调用。
在Main类的mainFrame()方法中添加如下内容:
// 调用设置的样式 setFrameAllConponentStyles();
好了,样式已经成功调用,那么来看看效果怎么样:
看起来按钮的效果确实好了许多。
在Styles.java中添加如下方法:
/** * 设置文本框的样式 * * @param textFields 文本框组 */ public void setTextField(JTextField... textFields) { for (JTextField textField : textFields) { // 设置文本框显示字体 textField.setFont(new Font("微软雅黑", Font.PLAIN, 18)); // 设置文本框前景色 textField.setForeground(Color.BLUE); // 设置文本框背景色 textField.setBackground(Color.WHITE); // 设置文本框最小尺寸 textField.setMinimumSize(new Dimension(3, 5)); // 设置文本框选中文本时文本颜色 textField.setSelectedTextColor(Color.BLUE); } }
文本框样式的方法写好后,就是为所有的文本框使用该样式,在Main.java中的setFrameAllConponentStyles()方法中添加如下内容:
// 设置文本框的样式 styles.setTextField(RTextField, GTextField, BTextField, HEXTextField, rTextField, gTextField, bTextField, hexResultTextField, inputHexTextField, rResultTextField, gResultTextField, bResultTextField);
运行程序,看下成果:
在Styles.java中添加setLabel()方法设置标签的样式,如下:
/** * 设置标签的样式 * * @param labels 标签组 */ public void setLabel(JLabel... labels) { for (JLabel label : labels) { label.setFont(new Font("微软雅黑", Font.PLAIN, 19)); label.setForeground(Color.BLACK); } }
接着在Main.java中的setFrameAllConponentStyles()方法中添加如下内容:
// 设置标签的样式 styles.setLabel(RLabel, GLabel, BLabel, HEXLabel, descriptionLabel);
运行程序,查看效果图:
尽管不是非常好看,但是比一开始建立的界面要好看一些。
本节的内容就到这里了,而本项目的代码部分也基本完成了,接下来就是打包成jar和exe了。
思考:在本项目中,可以发现就主界面一个界面就有非常多的组件,而在Styles类已经对组件样式统一写方法进行设置了,但是还是比较麻烦,如果项目中界面很多,那么光设置样式就是一件很麻烦的事情,会充斥着大量重复代码,如需修改或单独设置某一个组件的样式,又是很麻烦,那么如何解决呢?这个问题留在下一个项目吧!
可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。
注意:在公众号后台回复【20191003】可获取本节源码。
转载地址:http://evzx.baihongyu.com/