Java JScrollPane inside BorderLayout.CENTER不';t调整大小

Java JScrollPane inside BorderLayout.CENTER不';t调整大小,java,swing,layout-manager,Java,Swing,Layout Manager,这是下面的代码,问题是JScrollPane保持其首选大小,并且不随BorderLayout.CENTER区域调整大小。我当然想让它填满那个区域。。并使用它滚动其中表格的内容 frame = new JFrame(); frame.setBounds(100, 100, 500, 400); JPanel panelCenter = new JPanel(); FlowLayout flowLayout = (FlowLayout) panelCenter.getLayout(); flowLa

这是下面的代码,问题是JScrollPane保持其首选大小,并且不随BorderLayout.CENTER区域调整大小。我当然想让它填满那个区域。。并使用它滚动其中表格的内容

frame = new JFrame();
frame.setBounds(100, 100, 500, 400);
JPanel panelCenter = new JPanel();
FlowLayout flowLayout = (FlowLayout) panelCenter.getLayout();
flowLayout.setAlignment(FlowLayout.LEFT);
panelCenter.setPreferredSize(new Dimension(300, 400));

panelRight = new ActorDrawer();
frame.getContentPane().add(panelRight, BorderLayout.EAST);
panelRight.setLayout(null);
panelRight.setPreferredSize(new Dimension(200, 400));
frame.getContentPane().add(panelCenter, BorderLayout.CENTER);

table = new JTable(new MyTableModel());
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
panelCenter.add(scrollPane);

您不会使用
边框布局将
JScrollPane
添加到面板的中心:您可以使用
FlowLayout
将其添加到另一个面板,然后将此面板添加到中心。删除
面板中心

基本上,您必须了解布局经理的确切行为。然后始终使用LayoutManager(右侧面板没有)。永远不要使用任何setXXSize方法(原因请参阅)