setBorder на JTextField не работает?или делает это? - PullRequest
6 голосов
/ 17 февраля 2010

Код такой:

JTextField txt = new JTextField();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));

Однако текстовое поле игнорирует мой вызов setBorder. Без изменений вообще.

Я должен был заменить его на JLabel (например)

JLabel txt = new JLabel();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));

Я бы увидел красную рамку.

Кто-нибудь может сказать мне, почему? Или еще лучше объясните мне, как добавить границу в JTextField?

1 Ответ

6 голосов
/ 17 февраля 2010

Ознакомьтесь с этим объяснением / рекомендацией Java API

В общем, когда вы хотите установить граница стандартного компонента Swing кроме JPanel или JLabel, мы рекомендую поставить компонент в JPanel и установить границу на JPanel.

Итак ... вы должны вложить свой JTextField в JPanel или JLabel и поставить границу на JPanel или JLabel. Voila!

...