BorderLayout.CENTER中的JScrollPane不会调整大小

luc*_*uca 2 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();
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);
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 7

您不要JScrollPane使用BorderLayout以下内容将其添加到面板的中心:将其添加到另一个面板,使用a FlowLayout,此面板将添加到中心.删除panelCenter.