JTable всегда использует фиксированный размер

У меня есть JTable с панелью прокрутки. Панель прокрутки добавлена ​​в JTabbedPane. JTabbedPane добавляется в JPanel, который находится в JFrame. Проблема в том, что JTable должен занимать всю ширину пространства, но JTable всегда размещается в центре, а другие компоненты добавляются справа. Если я заставлю JTable занимать всю ширину, используя полосу прокрутки table.setPreferredScrollableViewportSize(table.getPreferredSize());, она не будет видна. Как заставить JTable занимать все пространство, а другие компоненты добавляются в его нижнюю часть?


person user2881444    schedule 25.10.2013    source источник


Ответы (2)


Если я заставлю JTable занимать всю ширину, используя table.setPreferredScrollableViewportSize(table.getPreferredSize());

Это для JTable с несколькими фиксированными строками и столбцами или в случае, если при запуске приложения инициализируется JTable с фиксированным количеством строк и столбцов.


Как заставить JTable занимать все пространство, а другие компоненты добавляются в его нижнюю часть?

и твой комментарий

Использование макета сетки videopanel.setLayout(new GridLayout(1,1));

  • изменить GridLayout на BorderLayout (предполагая, что JPanel помещено в Tab)

  • поместите JScrollPane (содержит JTable) в область BorderLayout.CENTER

  • поместите другие JComponents, чтобы отделить JPanel, этот JPanel (содержит другие JComponents) поместите в область BorderLayout.SOUTH.

person mKorbel    schedule 25.10.2013

Какой макет вы используете для размещения компонента на JPanel.

пожалуйста, взгляните на следующий URL

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html

person Noman ali abbasi    schedule 25.10.2013
comment
Использование макета сетки videopanel.setLayout(new GridLayout(1,1)); - person user2881444; 25.10.2013