本章概要:界面简单装饰
查看运行效果图,会发现界面比较丑,字迹模糊,文本框小。
那么接下来本节将会对界面进行一些简单的装饰,设置些样式。
在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】可获取本节源码。
转载:https://blog.csdn.net/cnds123321/article/details/101109644