добавление нескольких jPanels в jFrame

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

У меня есть следующие строки кода. У меня есть один класс seatinPanel, который расширяет JPanel, и внутри этого класса у меня есть конструктор и один метод utilityButtons, который возвращает объект JPanel. Я хочу utilityButtons для 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 ответов


самый гибкий 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);

затем добавьте контейнер для объекта в компонент фрейма.


вам нужно прочитать и узнать о менеджерах макетов, которые может предложить Swing. В вашей ситуации это поможет узнать, что contentPane JFrame использует BorderLayout по умолчанию, и вы можете добавить свой более крупный центр JPanel BorderLayout.Центр и другой Jpanel BorderLayout.ВОСТОК. Подробнее можно найти здесь:выкладка компонентов в контейнер

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