Удаление промежутка вокруг TitledBorder - PullRequest
0 голосов
/ 26 октября 2011

A javax.swing.border.TitledBorder вводит интервал в 2 пикселя по краям границы. Это довольно раздражает, потому что нарушает выравнивание вокруг компонентов.

Как удалить этот интервал?

Я ищу решение, которое подойдет для любого внешнего вида.

Ответы [ 2 ]

6 голосов
/ 26 октября 2011

К сожалению, эта ширина ребра жестко задана в классе TitledBorder. Таким образом, вы не можете удалить этот интервал.

public class TitledBorder extends AbstractBorder
{
    //...

    // Space between the border and the component's edge
    static protected final int EDGE_SPACING = 2;
}

Но вы можете попытаться расширить этот класс (переопределить методы «void paintBorder (Component, Graphics, int, int, int, int)») или «Insets getBorderInsets (Component, Insets)») или реализовать собственную границу царапина.

2 голосов
/ 27 октября 2011

Это не реальный ответ на ваш вопрос, а скорее предложение: если вы хотите сохранить выравнивание между компонентами, то:

  • не используйте границы
  • используйте только одну панельдля всего диалога или фрейма
  • используйте LayoutManager, который обеспечивает правильное выравнивание (совет: DesignGridLayout, но есть и другие хорошие LayoutManager)
  • , если вам нужно визуально сгруппировать компоненты(так же, как в названной рамке), затем введите строку с JLabel и горизонтальной JSeparator (это предложение Карстена Ленча из известности JGoodies)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...