如何并排放置两个jpanels

我尝试将两个jpanels并排放置,但是在这一刻我不能做我想要的,我有这个代码,

this.videoPanel= new JPanel(); this.videoPanel.setBackground(new Color(102, 102, 102)); this.videoPanel.setPreferredSize(new Dimension(320, 240)); this.videoPanel.setLayout(new BoxLayout(this.videoPanel, 1)); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(this.videoPanel, 10, 400, 500))); layout.setVerticalGroup( layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(this.videoPanel, 10, 400, 500))); pack(); 

`我试着再放一个jpanel:

  this.videoPanel1.setBackground(new Color(102, 102, 102)); this.videoPanel1.setPreferredSize(new Dimension(320, 240)); this.videoPanel1.setLayout(new BoxLayout(this.videoPanel1, 2)); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(this.videoPanel1, 10, 400, 500) .addComponent(this.videoPanel, 10, 400, 500))); layout.setVerticalGroup( layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(this.videoPanel1, 10, 400, 500) .addComponent(this.videoPanel, 10, 400, 500))); pack(); 

此代码不起作用,也不会出错。

如果我正确理解你的问题,你想要并排放置2个JPanel。 查看Layout GridLayout。

你想要setLayout(new GridLayout(1,2)); 其中1排,2列


 package SSCCE; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class SideBYSide extends JFrame{ public static void main(String[] args) { new SideBYSide(); } public SideBYSide(){ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(100, 75); this.setLayout(new BorderLayout()); this.setVisible(true); JPanel container = new JPanel(); JPanel panelOne = new JPanel(); JPanel panelTwo = new JPanel(); panelOne.add(new JLabel("1")); panelTwo.add(new JLabel("2")); container.setLayout(new GridLayout(1,2)); container.add(panelOne); container.add(panelTwo); this.add(container); } }