簡體   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