我将从我想要的开始,然后从那里开始:
+------------------------------------------+
|[] 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]
)。
所以,基本上我的问题是:我应该如何实现它?
最佳答案
创建父级
JLabel
,JLabel
还没有实现任何LayoutManager
,然后在那里设置适当的LayoutManager
,我认为 GridLayout(有 2 段文本,1 段左对齐和 1 段右对齐
)添加两个正确对齐的
JLabel
(JLabel.setHorizontalAlignment(javax.swing.SwingConstants.XXX);
)将
JCheckBox
与父级JLabel
放在一起 (JLabel.setLabelFor(JCheckBox);
)MultiIcon in the JLabel 的方法相同
关于java - 在 JCheckBox 中有一个左右对齐的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13968323/