JScrollPane внутри BorderLayout.CENTER не меняет размер - PullRequest
2 голосов
/ 13 октября 2011

Это код ниже, проблема в том, что 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);

1 Ответ

7 голосов
/ 13 октября 2011

Вы не добавляете JScrollPane в центр панели с помощью BorderLayout: вы добавляете его на другую панель с FlowLayout, и эта панель добавляется в центр. Удалить panelCenter.

...