Однако, когда я удаляю scrollPane, отображается таблица.
table.setBounds(20, 95, 580, 250);
Исходя из приведенного выше кода, похоже, что вы используете нулевой макет, так как вы видите таблицу,
Однако, когда вы добавляете таблицу в область прокрутки, область прокрутки не имеет размера, поэтому рисовать нечего.
Не используйте пустой макет !!!
Swing был разработан для использования с менеджерами компоновки.Узнайте, как их использовать, и код будет легче кодировать и работать лучше.
JScrollPane scrollPane = new JScrollPane(table);
table.setFillsViewportHeight(true);
contentPane.add(scrollPane);
Так что теперь, когда вы начинаете использовать менеджеры компоновки и добавляете компонент в видимый графический интерфейс, вам нужно revalidate()
иrepaint () `панель, которая изменилась для вызова менеджера компоновки на панели.Поэтому вам нужно добавить:
contentPane.revalidate();
contentPane.repaint();
Однако лучшее решение - НЕ продолжать создавать новые JTable и JScrollPane.Вместо этого вы можете создать эти компоненты при создании фрейма и добавить их в фрейм.
Затем, когда вы выполняете поиск, вы просто создаете новую TableModel с результатами поиска, а затем обновляете таблицу с помощью:
table.setModel( .... );
Таблица перекрасится автоматически.