我创建了一个包含
JLabel
和带有JTextArea
的JScrollPane
的Box
。但是JLabel
左侧总是有一些空间:
完整演示代码:
import java.awt.*;
import javax.swing.*;
public class BoxAlignmentTest extends JFrame {
public static void main(String[] args) {
BoxAlignmentTest test = new BoxAlignmentTest();
test.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
test.setSize(500, 200);
test.setVisible(true);
}
public BoxAlignmentTest() throws HeadlessException {
Box box = Box.createVerticalBox();
setContentPane(box);
JLabel label = new JLabel("This label isn't fully left-aligned.");
label.setOpaque(true);
label.setBackground(Color.orange);
label.setAlignmentX(Component.LEFT_ALIGNMENT); // Set left alignment
box.add(label);
box.add(new JScrollPane(new JTextArea("This is a text area.")));
}
}
BoxLayout
;)。对于您的情况,最好使用BorderLayout
。通常情况下,请使用GridBagLayout
或第三方布局(如MigLayout
或FormLayout
)。 - Sergiy Medvynskyy