добавление нескольких jPanels в jFrame - PullRequest
11 голосов
/ 13 июня 2011

Я хочу добавить две jPanels в JFrame рядом.два блока - это jpanels, а внешний блок - это jframe enter image description here

У меня есть эти строки кода.У меня есть один класс с именем seatinPanel, который расширяет JPanel, и внутри этого класса у меня есть конструктор и один метод с именем utilityButtons, который возвращает объект JPanel.Я хочу, чтобы утилита Buttons JPanel находилась с правой стороны.код, который у меня есть, отображает только кнопки utillityButtons JPanel, когда он выполняется.

public guiCreator()
    {
        setTitle("Passenger Seats");
        //setSize(500, 600);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container contentPane = getContentPane();

        seatingPanel seatingPanel1 = new seatingPanel();//need to declare it here separately so we can add the utilityButtons
        contentPane.add(seatingPanel1); //adding the seats
        contentPane.add(seatingPanel1.utilityButtons());//adding the utility buttons

        pack();//Causes this Window to be sized to fit the preferred size and layouts of its subcomponents
        setVisible(true);  
    }

Ответы [ 2 ]

27 голосов
/ 13 июня 2011

Самый гибкий LayoutManager, который я бы порекомендовал, это BoxLayout .

. Вы можете сделать следующее:

JPanel container = new JPanel();
container.setLayout(new BoxLayout(container, BoxLayout.X_AXIS));

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

//panel1.set[Preferred/Maximum/Minimum]Size()

container.add(panel1);
container.add(panel2);

, а затем добавить контейнер к объекту в компоненте фрейма.

5 голосов
/ 13 июня 2011

Вы должны прочитать и узнать о менеджерах компоновки, которые может предложить Swing. В вашей ситуации будет полезно знать, что contentPane JFrame по умолчанию использует BorderLayout, и вы можете добавить свой более крупный центр JPanel BorderLayout.CENTER и другой JPanel BorderLayout.EAST. Больше можно найти здесь: Размещение компонентов в контейнере

Редактировать 1
Эндрю Томпсон уже показал вам немного о менеджерах компоновки в своем коде в вашем предыдущем посте: почему мои кнопки не отображаются? . Опять же, пожалуйста, прочитайте руководство, чтобы лучше их понять.

...