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