Как я могу предотвратить изменение размеров столбцов JTable при изменении размера JFrame? - PullRequest
3 голосов
/ 27 июля 2010

Этот код помещает JTable в JFrame (единственный компонент всего пользовательского интерфейса):

    JFrame frame = new JFrame( "Title");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTable table = appender.createTable();
    JScrollPane scrollPane = new JScrollPane(table);
    table.setFillsViewportHeight(true);
    frame.getContentPane().add(scrollPane, BorderLayout.CENTER);

    frame.pack();
    frame.setVisible(true);

У меня также есть код для установки предпочтительного размера столбцов.

Ничегофантазии.Когда пользовательский интерфейс открывается, таблица занимает весь вид, и у меня нет полос прокрутки.Объединенная предпочтительная ширина столбцов требует большего горизонтального пространства, чем широкие окна.Несмотря на это, горизонтальная полоса прокрутки отсутствует, а столбцы слишком узкие.

Что мне нужно для этого сделать

  1. Размер столбцов по-прежнему может изменяться пользователем
  2. Текущая ширина соблюдается?Т.е. при изменении ширины одного столбца ширина других столбцов не должна изменяться.

1 Ответ

3 голосов
/ 27 июля 2010
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );

Вы также можете добавить область прокрутки, содержащую таблицу, в JPanel, а затем добавить панель в рамку. Таким образом, размер панели будет меняться, а не полоса прокрутки.

...