[英]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.