Если вы используете GroupLayout, построитель графического интерфейса Netbeans может выровнять текст флажка и метку на следующей строке .... вроде.
Кажется, это хорошо работает для Nimbus, но в другом LAF текст метки находится на один пиксель слишком далеко вправо. Глядя на сгенерированный код для GroupLayout в конструкторе GUI, он делает разрыв 22x22 перед меткой. Для Нимба 22 кажется правильным, но для других ЛАФ это, кажется, 21.
Сгенерированный код выглядит следующим образом.
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHortizontalGroup(
layout.createParallelGroup(Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(22,22,22)
.addComponent(label)
)
.addComponent(checkBox)
)
)
);
layout.setVerticalGroup(
layout.createParallelGroup(Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(checkBox)
.addPreferredGap(ComponentPlacement.RELATED)
.addComponent(label)
)
);
Этот код будет добавлен в конструктор класса-образца после присваивания меток и checkBox. Также удалите setLayout (null);
С учетом всего сказанного, основываясь на том, что я видел с помощью GUI Builder, я бы порекомендовал следующее:
- удалить бит
Border cbBorder
из семпла
- добавить
checkBox.getIconTextGap()
к метке X.
- Если LAF - это нимб, добавьте 4 к метке X. :)