Ответа, предоставленного @ Atreys , будет достаточно, но существует более одного способа снять кожу с кошки .Другой вариант - создать класс, который расширяет JLabel
и назначает границу в своем конструкторе.Следовательно, все экземпляры будут иметь ту же границу, что и ваш запрос.Это также избавит от необходимости неуклюже перебирать коллекцию из Component
s, использовать оператор instanceof
, а затем typecast, который на самом деле не ООП.Приложение:
И если вы хотите избежать многословия необходимости вводить new BorderedJLabel()
для каждого нового экземпляра BorderedJLabel
, вы можете просмотреть статический фабричный метод , как таковой
public final class BorderedJLabel extends JLabel{
private BorderedJLabel(){
// assign border
}
public static final BorderedJLabel newInstance(){
return new BorderedJLabel();
}
}
Учитывая этот дизайн, вы сможете создавать новые BorderedJLabel
экземпляры более лаконично, просто набрав BorderedJLabel.newInstance()
.