Это кажется простым делом, но я не могу заставить его работать.
У меня есть BorderLayout
. Я хочу использовать верхнюю часть для строки заголовка. Я хочу добавить JPanel
с метками, кнопками и другими компонентами. Однако часть PAGE_START
рамки не будет выравнивать панель по левому краю. Вот ситуация с комментариями, где я пытался установить выравнивание.
Я заметил, что когда я не добавляю панель к макету рамки, а просто пишу JLabel
прямо, по умолчанию она выравнивается по левому краю.
Однако это не то, чего я хочу, потому что я планирую поставить BoxLayout.X_AXIS
горизонтально через область заголовка BorderLayout.PAGE_START
. Кажется, это разумный поступок?
Аргумент панели Container
для статического метода — это просто единственная панель на главной панели JFrame
.
public static void addComponentsToPane(Container pane)
{
JLabel jlabel = new JLabel("I want to left align this inside a JPanel");
// Doesn't work: jlabel.setAlignmentX(Component.LEFT_ALIGNMENT);
JPanel jpanel = new JPanel();
//Doesn't work: jlabel.setAlignmentX(Component.LEFT_ALIGNMENT);
jpanel.add(jlabel);
pane.add(jpanel, BorderLayout.PAGE_START);
// Other parts of the BoxLayout (works fine)
JButton button = new JButton("Button 2 (CENTER)");
button.setPreferredSize(new Dimension(200, 100));
pane.add(button, BorderLayout.CENTER);
button = new JButton("Button 3 (LINE_START)");
pane.add(button, BorderLayout.LINE_START);
button = new JButton("Long-Named Button 4 (PAGE_END)");
pane.add(button, BorderLayout.PAGE_END);
button = new JButton("5 (LINE_END)");
pane.add(button, BorderLayout.LINE_END);
}
Даже когда я говорю панели выровнять метку по левому краю, она не выглядит выровненной по левому краю.
Кто-нибудь знает, что я делаю неправильно?