在util包下创建StyleUtil.java类,添加如下方法:
package util;
import javax.swing.*;
import java.awt.*;
/**
* 样式方法类
*
* @author lck100
*/
public class StyleUtil {
/**
* 设置名称按钮的样式(如父、母等按钮)
*
* @param buttons 按钮组
*/
public void setNameButtonStyle(JButton... buttons) {
for (JButton button : buttons) {
// 设置背景色
button.setBackground(new Color(255, 255, 255));
// 设置前景色
button.setForeground(new Color(0, 0, 0));
// 设置字体
button.setFont(new Font("微软雅黑", Font.PLAIN, 20));
// 设置点击按钮时的边框线
button.setFocusPainted(false);
// 设置边界
button.setBorderPainted(true);
}
}
/**
* 操作结果:设置“计算”按钮样式
*
* @param buttons 计算按钮
*/
public void setCountButtonStyle(JButton... buttons) {
for (JButton button : buttons) {
// 设置前景色
button.setForeground(new Color(255, 255, 255));
// 设置字体
button.setFont(new Font("微软雅黑", Font.PLAIN, 18));
// 设置点击按钮时的边框线
button.setFocusPainted(false);
// 设置边界
button.setBorderPainted(false);
}
}
/**
* 操作结果:设置标签样式
*
* @param labels 标签组
*/
public void setLabelStyle(JLabel... labels) {
for (JLabel label : labels) {
// 设置字体
label.setFont(new Font("微软雅黑", Font.PLAIN, 23));
}
}
/**
* 操作结果:设置文本域样式
*
* @param textAreas 文本域组
*/
public void setTextAreaStyle(JTextArea... textAreas) {
for (JTextArea textArea : textAreas) {
// 设置背景色
textArea.setBackground(new Color(244, 249, 251));
// 设置字体
textArea.setFont(new Font("微软雅黑", Font.PLAIN, 20));
// 设置前景色
textArea.setForeground(new Color(85, 85, 85));
}
}
/**
* 操作结果:设置面板样式
*
* @param panels 面板组
*/
public void setPanelStyle(JPanel... panels) {
for (JPanel panel : panels) {
// 设置边框
panel.setBorder(BorderFactory.createLineBorder(new Color(195, 199, 200), 1, true));
// 设置不透明
panel.setOpaque(false);
}
}
/**
* 操作结果:设置窗体样式
*
* @param frame 窗体
*/
public void setFrameStyle(JFrame frame) {
frame.getContentPane().setBackground(new Color(213, 233, 237));
}
/**
* 操作结果:设置窗体图标标题
*
* @param frame 窗体
* @param titleIconPath 图标路径
*/
public void setTitleIcon(JFrame frame, String titleIconPath) {
//Java提供的GUI默认工具类对象
Toolkit kit = Toolkit.getDefaultToolkit();
//为指定窗口设置图标标题
frame.setIconImage(kit.createImage(titleIconPath));
}
}
接着在Frame.java中添加如下方法:
/**
* 为整个界面添加样式
*/
private void setStyle() {
StyleUtil style = new StyleUtil();
// 设置名称按钮的样式
style.setNameButtonStyle(fatherButton, motherButton, husbandButton, wifeButton, sonButton, daughterButton, bigBrotherButton, smallBrotherButton, bigSisterButton, smallSisterButton);
// 设置计算按钮的样式
style.setCountButtonStyle(countButton, undoButton, clearButton);
countButton.setBackground(new Color(66, 139, 202));
undoButton.setBackground(new Color(92, 184, 92));
clearButton.setBackground(new Color(217, 83, 79));
// 设置标签的样式
style.setLabelStyle(relationLabel, resultLabel);
// 设置文本域的样式
style.setTextAreaStyle(inputRelationTextArea, outputResultTextArea);
// 设置面板的样式
style.setPanelStyle(relationPanel, nameButtonPanel, countButtonPanel, resultPanel);
// 设置窗体的样式
style.setFrameStyle(this);
// 设置图片
style.setTitleIcon(this, "images/qinshu.png");
}
在构造器Frame中添加如下语句,对样式设置的调用:
// 设置样式
setStyle();
该代码放置的位置如下:
运行程序,效果图如下:
可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。
注意:在公众号后台回复【20191112】可获取本节源码。