Я делаю приложение в eclipse с помощью swing и jfreechart, и у меня есть следующая проблема:
Как вы можете видеть на скриншоте, у меня есть рамка с несколькими компонентами. Проблема заключается в JTable, который всегда имеет один и тот же размер, независимо от того, изменяю ли я размер окна. Я хочу, чтобы размер таблицы изменялся так же, как и другие компоненты, например ChartPanel справа, и я не знаю, как это сделать. ContentPane имеет BorderLayout с тремя панелями:
- ScrollPane для JTable (ЗАПАД)
- Панель диаграммы (ЦЕНТР)
- Панель для кнопок (ЮГ)
Код для создания JTable таков:
private JTable getTasksTable() {
if (tasksTable == null) {
tasksTable = new JTable(new DefaultTableModel(new Object[] { "ID", "Duration", "Due-Date" }, 0) {
private static final long serialVersionUID = 1L;
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
});
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setHorizontalAlignment(SwingConstants.CENTER);
for (int i = 0; i < tasksTable.getColumnModel().getColumnCount(); i++) {
tasksTable.getColumnModel().getColumn(i).setCellRenderer(centerRenderer);
}
tasksTable.getTableHeader().setDefaultRenderer(centerRenderer);
tasksTable.getTableHeader().setBorder(new LineBorder(new Color(0, 0, 0)));
tasksTable.setBorder(new LineBorder(new Color(0, 0, 0)));
tasksTable.setFillsViewportHeight(true);
}
return tasksTable;
}
GridLayout
илиBoxLayout
держать таблицу и диаграмму вCENTER
. - person trashgod   schedule 06.03.2019JPanel
со своим значением по умолчаниюFlowLayout
в иерархии; ваш фрагмент показывает таблицу, но не вложенный макет; пожалуйста, отредактируйте свой вопрос, включив в него минимально воспроизводимый пример, демонстрирующий ваш пересмотренный подход. - person trashgod   schedule 06.03.2019