У меня есть JTable с панелью прокрутки. Панель прокрутки добавлена в JTabbedPane. JTabbedPane добавляется в JPanel, который находится в JFrame. Проблема в том, что JTable должен занимать всю ширину пространства, но JTable всегда размещается в центре, а другие компоненты добавляются справа. Если я заставлю JTable занимать всю ширину, используя полосу прокрутки table.setPreferredScrollableViewportSize(table.getPreferredSize());
, она не будет видна. Как заставить JTable занимать все пространство, а другие компоненты добавляются в его нижнюю часть?
JTable всегда использует фиксированный размер
Ответы (2)
Если я заставлю JTable занимать всю ширину, используя table.setPreferredScrollableViewportSize(table.getPreferredSize());
Это для JTable
с несколькими фиксированными строками и столбцами или в случае, если при запуске приложения инициализируется JTable
с фиксированным количеством строк и столбцов.
Как заставить JTable занимать все пространство, а другие компоненты добавляются в его нижнюю часть?
и твой комментарий
Использование макета сетки videopanel.setLayout(new GridLayout(1,1));
изменить
GridLayout
наBorderLayout
(предполагая, чтоJPanel
помещено вTab
)поместите
JScrollPane
(содержитJTable
) в областьBorderLayout.CENTER
поместите другие
JComponent
s, чтобы отделитьJPanel
, этотJPanel
(содержит другиеJComponent
s) поместите в областьBorderLayout.SOUTH
.
Какой макет вы используете для размещения компонента на JPanel.
пожалуйста, взгляните на следующий URL
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html