Как написать метод addElement для пользовательского класса Model, расширяющего AbstractTableModel?

Для назначения hw мне нужно настроить JTable в Swing и заполнить содержимое таблицы с помощью пользовательского класса модели, который расширяет AbstractTableModel. У меня много вопросов относительно этого чрезмерно сложного процесса, но я постараюсь сделать его простым.

Мой первый шаг — ввести данные в модель, верно? Когда я использовал JList (я мог использовать DefaultListModel), это было так же просто, как list.addElement(). Однако я обнаружил, что добавление данных в мою модель JTable не так просто. Методы по умолчанию для AbstractTableModel состоят из получения номеров строк/столбцов, и это все. Чтобы получить данные в мою модель, мне нужно написать свою собственную модель addElement? Любые указатели на это?

После того, как я получу данные в свою модель, это просто вопрос table.setModel(myModel);? Что мне нужно сделать, чтобы обработать индекс столбцов и строк?

Любая помощь или понимание этого вопроса действительно пойдет, я просто приближаюсь к тому, чтобы выбросить свой компьютер из окна...


person Jerry    schedule 08.10.2010    source источник


Ответы (1)


Вам нужно переопределить пустой AbstractTableModel#setValueAt.

AbstractTableModel не имеет поля данных, поэтому вы можете использовать все, что вам подходит.

Вашей табличной модели не нужно беспокоиться о преобразовании индекса модели/представления (если это то, о чем вы спрашиваете), потому что JTable#setValue делает это за вас.

(НЕ ответ: если вы просто хотите покончить с этим, а ваш учитель достаточно расслаблен, переименуйте DefaultTableModel ;)

person Geoffrey Zheng    schedule 09.10.2010