Можно ли иметь границу качания java только на верхней стороне? - PullRequest
34 голосов
/ 01 февраля 2010

Я знаю, как создавать границы, используя BorderFactory, но я не вижу ничего, что позволяло бы мне указывать, с каких сторон я хочу границу: S

Ответы [ 4 ]

73 голосов
/ 01 февраля 2010

Вы можете использовать MatteBorder , чтобы указать размеры границы на каждой стороне. Конструктор MatteBorder это:

public MatteBorder(int top,
                   int left,
                   int bottom,
                   int right,
                   Color matteColor)

Так что, если вы хотите, чтобы граница была только на нижней и правой сторонах вашего JPanel, вы можете написать что-то вроде этого:

JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 1, Color.BLACK));
37 голосов
/ 01 февраля 2010

Из Sun tutorial :

На следующем рисунке показаны некоторые матовые границы.При создании матовой границы вы указываете, сколько пикселей она занимает сверху, слева, снизу и справа от компонента.

( Java документы )

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

Матовая и пустая рамка позволяют указывать размеры с каждой стороны, которые могут быть равны нулю.

Интерфейс Border сам по себе довольно прост в реализации, если вам нужен индивидуальный вид. Я предполагаю, что могут быть сторонние доступные библиотеки, содержащие стили, не включенные в библиотеку Java.

2 голосов
/ 02 ноября 2018
text_field.setBorder( new MatteBorder(2, 0, 0, 0, Color.black));

Значения могут быть соответственно изменены.

...