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

标签 java swing jcheckbox

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

+------------------------------------------+
|[] 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/

相关文章:

尝试更改变量值时 Java 线程不起作用

java - 以记事本方式打开 CSV 文件,然后看不到新行

java - JOptionPane 标题栏图标

java - 如何检查 JFrame 中选中了哪些复选框?

java - 无法将 JLabel 与 JCheckBox 垂直对齐,就像单个 JCheckBox 与 GroupLayout 一样

java - 找出长度为 k 的递增子序列的总数

Java 打开文件夹确实返回所选文件夹

Java2D : Increase the line width

java - Java 中预期 XSL-FO 设计器的 UI

java - 如何在单击 JCheckBox 时显示 JPopupMenu?