Как удалить 3D-границу на JScrollPane - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть JTable с JScrollPane, который обеспечивает наличие полосы прокрутки на случай, если она станет слишком большой.Все это прекрасно работает, и вот скриншот:

Screenshot

Вы не можете видеть полосу прокрутки прямо сейчас, потому что это не обязательно, но этоне проблема.Проблема примерно в JTable и ниже (показывает размер JScrollPane), вы можете видеть границу, которая как бы придает ей вид 3D с тенью и тому подобное.Я хочу удалить это.Я не могу найти какое-либо свойство, которое отключает это, и оба JTable и JScrollPane не имеют границ любого вида (по умолчанию тоже нет).Любые идеи о том, как удалить эту 3D-границу?

Ответы [ 4 ]

0 голосов
/ 01 января 2019

В инициализации LookAndFeel просто установите пустую границу:

UIManager.getDefaults().put("ScrollPane.border", BorderFactory.createEmptyBorder());
UIManager.getDefaults().put("Table.border", BorderFactory.createEmptyBorder());

Это повлияет на все объекты ScrollPane вокруг вашего приложения, если вы хотите изменить только один, используйте этот код:

jScrollPane.setBorder(BorderFactory.createEmptyBorder());
jTable.setBorder(BorderFactory.createEmptyBorder());

Если вы хотите сохранить границу верхней строки для заголовка, используйте MatteBorder :

BorderFactory.createMatteBorder(1, 0, 0, 0,Color.LIGHT_GRAY))//1 is top line, rest is empty
0 голосов
/ 31 декабря 2018
   jScrollPane.setBorder(new EmptyBorder(1, 1, 1, 1));
   jTable.setBorder(new EmptyBorder(1, 1, 1, 1));

Используйте собственные имена переменных, относящиеся к "jScrollPane" и "jTable".Лучше использовать Windows Look and Feel, чтобы хорошо выглядеть.

0 голосов
/ 01 января 2019

Я обнаружил, что эта 3D-граница на самом деле была создана по умолчанию.Изменяя это, я смог удалить границу.

0 голосов
/ 31 декабря 2018

Сложно сказать, так как вы не показываете код, но getBorder () и getViewportBorder () возвращают значение null при вызове JScrollPane (не JTable).

Какие LnF(посмотрите и почувствуйте) вы используете?

...