gpt4 book ai didi

java - 在 JCheckBox 中有一个左右对齐的标签

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:44 25 4
gpt4 key购买 nike

我将从我想要的开始,然后从那里开始:

+------------------------------------------+
|[] 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没有任何视觉对齐。

  • 同时添加 JCheckBoxJLabel到面板,但是这需要我实现所有鼠标事件并在 JCheckBox 上调用正确的相应方法.我把这个放在一边 - 但是我愿意重新考虑这是否是唯一的选择

  • 将 JLabel 添加到 JCheckBox

    • 首先,这导致 JCheckBox 决定更改字体,因此必须对其进行“调整”
    • 其次,基线偏离了 1 或 2 个像素,这是通过实现放置 JLabel 的 LayoutManager 解决的。在基线上。
    • 第三,JLabelJCheckBox 重叠文本所以我调整我的布局管理器,但是 JCheckBox没有给出来自 getPreferedSize() 的正确结果(属于 [1,1])。

所以,基本上我的问题是:我应该如何实现它?

最佳答案

  • 创建父级 JLabelJLabel 还没有实现任何 LayoutManager,然后在那里设置适当的 LayoutManager,我认为 GridLayout(有 2 段文本,1 段左对齐和 1 段右对齐)

  • 添加两个正确对齐的 JLabel (JLabel.setHorizo​​ntalAlignment(javax.swing.SwingConstants.XXX);)

  • JCheckBox 与父级 JLabel 放在一起 (JLabel.setLabelFor(JCheckBox);)

  • MultiIcon in the JLabel 的方法相同

关于java - 在 JCheckBox 中有一个左右对齐的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13968323/

25 4 0