我有 10 个 JLabels
,我希望它们具有相同的边框。这是一个可以手动管理的数字,但为了成长为一名程序员,我想知道是否有办法让这个变得更容易。
我尝试使用 foreach 循环,使标签所在面板的所有组件都为 true,然后使用方法 setBorder(...)
。但这显然不起作用,因为对象被识别为组件而不是 JLabels。
如何自动将边框分配到 JLabel
?
最佳答案
@Atreys提供的答案就足够了,但是剥猫皮的方法不止一种。另一种选择是创建一个扩展 JLabel 的类并在其构造函数中分配边框。因此,根据您的要求,所有实例都将具有相同的边框。这还可以避免笨拙地迭代 Component
集合,使用 instanceof
运算符,然后进行类型转换,这不是真正的 OOP。
public final class BorderedJLabel extends JLabel{
public BorderedJLabel(){
// assign border
}
}
<小时/>
附录:
如果您想避免为每个新 BorderedJLabel
实例键入 new BorderedJLabel()
的冗长,您可以仔细阅读静态工厂方法,如此
public final class BorderedJLabel extends JLabel{
private BorderedJLabel(){
// assign border
}
public static final BorderedJLabel newInstance(){
return new BorderedJLabel();
}
}
鉴于此设计,您只需键入 BorderedJLabel.newInstance()
即可更简洁地创建新的 BorderedJLabel
实例。
关于java - 为多个 JLabel 分配边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941396/