Сначала я начну с того, что хочу, и оттуда:
+------------------------------------------+
|[] jCheckBox jLabel |
+------------------------------------------+
В принципе, я хотел бы иметь JCheckBox с двумя сегментами текста, 1 выровненными по левому краю и 1 выровненными по правому краю. Я хотел бы, чтобы весь ящик был доступен для кликабельности и действовал точно так же, как JCheckBox (Так как, если я нажимаю на мышь, он выделяет поле ect.).
Теперь я пробовал:
-
Использование HTML внутри текстового поля со следующей таблицей:
<html><table width=100%><tr width=100%><td>Left Text</td><td align=right>Right Text</td></tr></table>. Это создает[] Left TextRightTextбез какого-либо визуального выравнивания. -
Добавление как панели
JCheckBox, так иJLabel, однако это потребует от меня реализовать все события мыши и вызвать соответствующие соответствующие методы вJCheckBox. Я отложил это в сторону - однако я готов пересмотреть, если это единственный вариант -
Добавление JLabel в JCheckBox
- Во-первых, это заставило JCheckBox принять решение об изменении шрифта, поэтому его нужно было "скорректировать"
- Во-вторых, базовые линии отключены на 1 или 2 пикселя. Это было исправлено путем реализации LayoutManager, который поместил
JLabelв базовую линию. - В-третьих,
JLabelперекрывается с текстомJCheckBox, поэтому я должен настроить мой менеджер макета, однакоJCheckBoxне дал правильный результат изgetPreferedSize()(из[1,1]).
Итак, в основном мой вопрос: как мне это реализовать?