У меня есть JPanel
, к которому я добавил несколько компонентов (флажок, комбо и т. Д. ). Я заметил, что, когда рамка развернута, границы компонентов также сдвигаются или сдвигаются вправо. Затем при восстановлении компоненты возвращаются в исходное положение.
На мониторе с диагональю 21 дюйм и более смещение компонентов действительно имеет значение, поскольку вы можете видеть, что компоненты перемещаются далеко вправо.
Мы используем настроенный менеджер макетов, который реализует java.awt.LayoutManager2
. Содержание класса очень велико, поэтому оно будет указывать на области, которые определяют границы для компонентов.
protected int hMargin = 0;
..
Insets insets = target.getInsets();
Dimension size = target.getSize();
int x = (size.width - insets.left - insets.right - 15 * hMargin);
И из фрейма, который вызывает макет и добавляет компоненты, как показано ниже:
JPanel pl = new JPanel(new OurLayout(this))
//add the component to panel
pl.add(checkBox);
..
В точке, где мы принимаем решение x
, я хочу добавить строку, чтобы предотвратить смещение компонентов, когда кадр, к которому добавлена вызывающая панель , развернут максимально.
Может кто-нибудь предложить какие-либо идеи о том, как этого добиться? Пример кода будет хорошо оценен.