Когда я создаю JCheckBox в своем приложении Swing, я оставляю некоторое дополнительное пространство после его маркировки, поэтому если маркировка JCheckBox, например, 100 пикселей шириной, я делаю JCheckBox 120 пикселями для безопасности.
Проблема как во времени выполнения, не хорошо, что пользователь может нажать на вакуум после того, как маркировка JCheckBox и это могут быть на самом деле нажаты, как это:
Интересно, существует ли способ изменить размер JCheckBox во времени выполнения для точной установки тексту в нем, в зависимости от типа шрифта / используемый размер?
Это кажется необычным немного, но мне нравится заставлять вещи выглядеть прекрасными :)
Редактирование - Больше деталей:
Я использую FormLayout
, и я определяю JCheckBox
как это:
CellConstraints con = new CellConstraints();
contentPane.add(checkBox1, con.xywh(3, 13, 10, 1));
@trashgod верна. Если вам нужны отступы, выравнивание или интервалы в эстетических целях, вам следует использовать менеджеры компоновки, чтобы добиться этого, а не возиться с самими компонентами. Таким образом можно сделать практически любой макет, которого вы хотите достичь. Вам может потребоваться использовать GridBagLayout
, что может вызвать затруднения, но это наиболее гибкий вариант.
для точного размещения текста внутри него, в зависимости от типа/размера используемого шрифта
Это предпочтительный размер по умолчанию для JCheckBox
; просто не меняйте его.
Хорошо ... Спасибо всем за ответы. Я нашел подходящее решение при использовании FormLayout:
contentPane.add(checkBox1, con.xywh(3, 13, 10, 1, CellConstraints.LEFT, CellConstraints.DEFAULT));