为JLabel定义默认值
问题描述:
为此示例定义默认值的最佳方式是什么,因此我不必再为每个对象定义边框和字体。为JLabel定义默认值
Border infoLabelMargin = new EmptyBorder(10, 10, 10, 10);
JLabel usernameInfoLabel = new JLabel("Benutzer: " + GlobalValues.USERNAME);
Border usernameInfoLabelBorder = usernameInfoLabel.getBorder();
usernameInfoLabel.setFont(new Font("SANS_SERIF", Font.BOLD, 35));
usernameInfoLabel.setBorder(new CompoundBorder(usernameInfoLabelBorder, infoLabelMargin));
infoBox.add(usernameInfoLabel);
JLabel versionInfoLabel = new JLabel("Version: " + GlobalValues.VERSION_NUMBER);
Border versionInfoLabelBorder = versionInfoLabel.getBorder();
versionInfoLabel.setBorder(new CompoundBorder(versionInfoLabelBorder, infoLabelMargin));
infoBox.add(versionInfoLabel);
答
代码来创建标签
infoBox.add(DefaultLayouts.infoLabel("Benutzer: " + GlobalValues.USERNAME));
infoBox.add(DefaultLayouts.infoLabel("Version: " + GlobalValues.VERSION_NUMBER));
类定义的默认标签
public class DefaultLayouts {
public static JLabel infoLabel(String text) {
JLabel label = new JLabel(text);
Border margin = new EmptyBorder(10, 10, 10, 10);
Border border = label.getBorder();
label.setBorder(new CompoundBorder(border, margin));
return label;
}
}
创建一个工厂类/方法,将创建这些'JLabel's具有相同属性的? – Laf
对于[示例](http://*.com/a/10360374/230513)。 – trashgod
这正是我所寻找的,thx – RHo