2016-02-26 85 views
-1

为此示例定义默认值的最佳方式是什么,因此我不必再为每个对象定义边框和字体。为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); 
+2

创建一个工厂类/方法,将创建这些'JLabel's具有相同属性的? – Laf

+0

对于[示例](http://stackoverflow.com/a/10360374/230513)。 – trashgod

+0

这正是我所寻找的,thx – RHo

回答

0

代码来创建标签

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; 
    } 
}