Проблема с растущими строками JTable - PullRequest
0 голосов
/ 22 июля 2011

Я делаю код, в котором у меня есть JTable с моей собственной созданной табличной моделью (это не модель по умолчанию), в которую я должен заполнить данные во время выполнения программы. Таким образом, число строк также увеличивается с увеличением данных (разн. В разы). Я не хочу показывать ненужные строки, я имею в виду не показывать пустые строки, заранее создав большой стек.

Поскольку размер массива фиксирован (о чем я думал в первую очередь), кто-нибудь может мне помочь наилучшим из возможных способов?

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Используйте взамен ArrayList<T>.Он внутренне корректирует размер структуры данных по мере необходимости.

ArrayList<Integer[]> arrayList = new ArrayList<Integer[]>();

arrayList.add(new Integer[]{1, 2});
arrayList.add(new Integer[]{3, 4});
arrayList.add(new Integer[]{5, 6});
2 голосов
/ 22 июля 2011

Просто добавьте новые строки в модель, когда вам нужно.В простом случае вы можете просто использовать DefaultTableModel (по умолчанию используется JTable) или, если он недостаточно гибок, реализовать собственную модель, расширив AbstractTableModel.Примерно так:

DefaultTableModel model = new DefaultTableModel();
model.addColumn("Number");
model.addColumn("Number + 1");

//Add pointless numbers to model
for(int i = 0; i < 10; i++) {
    model.addRow(new Integer[] { i, i + 1});
}

JTable table = new JTable(model);

Модель сообщит JTable об изменениях, когда вы ее измените.Если концепция моделей кажется вам чуждой, советую прочитать официальное введение в компонент JTable: http://download.oracle.com/javase/tutorial/uiswing/components/table.html

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