繁体   English   中英

使多行 JCheckbox 上的复选框与第一行对齐,而不是中心

[英]Make the checkbox on a mult-line JCheckbox align with the first line, not the center

我正在运行一个程序,该程序将多个不同的 JCheckBoxes 添加到 JFrame 上的 GroupLayout JPanel 中,但遇到了一个小问题。 使用以下代码,程序将成功创建一个多行 JCheckBox,但复选框垂直对齐 4 行的中心,我希望它与第一行对齐:

    import javax.swing.JFrame;
    import javax.swing.SwingUtilities;
    import java.io.*;
    import javax.swing.*; 
    import javax.swing.JCheckBox;
    import javax.swing.GroupLayout;

    public class MainClass {

    public static void main(String[] args) {
            JFrame f = new JFrame("Survey");
            JPanel p = new JPanel();

            GroupLayout layout = new GroupLayout(p);
            GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
            GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();

            p.setLayout(layout);

            JCheckBox example = new JCheckBox();
            example.setText("<html><body>lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum");

            hGroup.addComponent(example, 0,150,150);
            vGroup.addComponent(example);

            layout.setHorizontalGroup(hGroup);
            layout.setVerticalGroup(vGroup); 
            f.add(p);
            f.setVisible(true);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setLocationRelativeTo(null);
            f.setVisible(true);
            f.setExtendedState(f.getExtendedState() | JFrame.MAXIMIZED_BOTH);
        }  
    }

Output:

输出

我希望它看起来像这样(注意我糟糕的图像编辑技巧以及它随机不同的灰色阴影的事实):

期望的结果

如您所见,我使用 GroupLayout,如果可能的话,我想保留它,因为我想将它应用于更大的程序,并且重组我的整个布局不太理想。 谢谢

看看AbstractButton API。

有几种方法可以让您控制文本相对于图标的位置。

例如:

JCheckBox example = new JCheckBox();
example.setText("<html><body>lorum ipsum lorum ipsum lorum ipsum lorum ipsum lorum ipsum");
example.setVerticalTextPosition(SwingConstants.TOP);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM