Выравнивание JComponents по левой и правой сторонам JPanel - PullRequest
6 голосов
/ 20 декабря 2011

У меня есть JPanel, который содержит два JComponents, скажем, два JButton, btnLeft и btnRight.Я хочу, чтобы эти две кнопки были выровнены по горизонтали, и я хочу, чтобы btnLeft находился с левой стороны JPanel, а btnRight - с правой стороны JPanel, оставляя свободное пространство между ними.

Я знаю, что могусделайте это с BoxLayout, добавив горизонтальную распорку , в которой я должен указать количество пространства между , но должен быть более простой способ без указания того, что между ними осталось.

Как мне это сделать?

Ответы [ 2 ]

4 голосов
/ 20 декабря 2011

Похоже, что горизонтальныйКлей - это то, что вы ищете:

    JComponent comp = new JPanel();
    comp.setLayout(new BoxLayout(comp, BoxLayout.LINE_AXIS));
    comp.add(new JLabel("left"));
    comp.add(Box.createHorizontalGlue());
    comp.add(new JLabel("right"));
2 голосов
/ 20 декабря 2011

Если вы не возражаете против вертикально растянутых кнопок, почему бы не попробовать:

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class JFrame1 {
public static void main(String[] args) {
        JFrame frame = new JFrame();
        JButton btn1 = new JButton("Btn1");
        JButton btn2 = new JButton("Btn2");
        frame.setLayout(new BorderLayout());
        frame.setSize(500, 400);
        frame.add(btn1, BorderLayout.WEST);
        frame.add(btn2, BorderLayout.EAST);
        frame.show();
    }
}

enter image description here

...