@roman3847

JTable Model — можно ли вывести n-ое количество записей?

Можно ли вывести, например, первых 5 записей, а затем, по нажатию кнопки записи, а первые скрывать?

Т.е. получается нечто вроде страниц, на первой 5 записей, а на второй - остальные. Можно ли это сделать?
  • Вопрос задан
  • 2574 просмотра
Решения вопроса 1
@Dm13y
Для этого можно использовать методы getRowCount() и getValueAt()
Нужно завести переменные с кол-вом страниц и текущей страницей, затем на основании их высчитывать нужные строки из массива и их отображать
Например:
public class TestTable extends AbstractTableModel {
    
    //Количество строк на странице
    private int rowOnPages = 10;
    //Текущая страница
    private int currentPages;
    //Количество страниц
    private int countPages;
    
    private ArrayList<String> data;
    private ArrayList<String> columnHeader;
    
    public TestTable(ArrayList<String> data, ArrayList<String> columntHeader){
        countPages = data.size() / rowOnPages;    
        this.data = data;
        this.columnHeader = columntHeader;
    }
    

    @Override
    public int getRowCount() {
        return rowOnPages;
    }

    @Override
    public int getColumnCount() {
        return columnHeader.size();
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch (columnIndex) {
            case 0:
                return data.get(rowOnPages * currentPages + rowIndex);
            default:
                return null;
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы