【发布时间】:2012-12-07 17:54:15
【问题描述】:
我会从我想要的开始,然后从那里开始:
+------------------------------------------+
|[] jCheckBox jLabel |
+------------------------------------------+
基本上我想要一个JCheckBox,其中包含 2 个文本段,1 个左对齐和 1 个右对齐。我希望整个框都是可点击的,并且完全像JCheckBox(就像我按下鼠标一样,它会突出显示框等)。
现在我已经试过了:
在文本框内使用 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 个像素,此问题已通过实施将
JLabel放置在基线上的 LayoutManager 得到解决。 - 第三,
JLabel与JCheckBox文本重叠,所以我调整我的布局管理器,但是JCheckBox没有从getPreferedSize()([1,1])给出正确的结果。
所以,基本上我的问题是:我应该如何实现这个?
【问题讨论】:
-
那么,如果我理解正确的话,您希望这个复合面板的行为与里面的复选框完全一样,对吧?
-
是的,基本上是这样