Как я могу заполнить высоту JScrollPane пустыми строками JTable? - PullRequest
6 голосов
/ 14 мая 2011

Я помещаю JTable в JScrollPane, но таблица содержит только несколько строк, что делает оставшееся пространство на панели просто пустым.

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

Спасибо

Ответы [ 3 ]

10 голосов
/ 14 мая 2011
table.setFillsViewportHeight( true );
3 голосов
/ 14 мая 2011

Метод JTable setPreferredScrollableViewportSize() - это еще один способ управления экранной недвижимостью. Здесь есть пример .

1 голос
/ 14 мая 2011

Я не уверен, что это лучший способ, но он должен работать нормально:

int rows = jTable1.getRowCount();
    int rowHeight = jTable1.getRowHeight();
    int tableHeight = jTable1.getTableHeader().getHeight()+(rows*rowHeight);
    System.out.println("JScrollpane: "+jScrollPane1.getViewport().getHeight());
    while( tableHeight<jScrollPane1.getViewport().getHeight()){
        System.out.println("JTable: "+tableHeight);
        ((DefaultTableModel) jTable1.getModel()).addRow(new Object[]{null,null,null,null});
        tableHeight+=rowHeight;
    }

Очевидно, вам нужно изменить модель и вставленные данные на те, которые вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...