2012-08-17 3 views
0

Я новичок в JTable. Я создал JTable динамически, и я не знаю, как получить данные из этого динамического JTable.Как получить значение от динамически созданного JTable

JTable создан в анонимном классе внутри MouseListener внутри анонимного класса. Я не могу получить доступ к JTable вне анонимного класса.

+2

вам нужна ссылка на табличном _outside_ слушателя. Во всяком случае, лучше не воссоздавать таблицу каждый раз, когда данные изменяются, а обновлять ее модель. Не забудьте прочитать и понять соответствующие главы в учебнике, указанном в теге swing. – kleopatra

+1

«Проблема заключается в том, что JTable создается внутри MouseListener внутри анонимного класса». Прекратите делать это, и нет проблем ... Если вы объявите его как член класса, который содержит MouseListener, MouseListener все равно будет иметь к нему доступ. –

ответ

3

Данные находятся в таблицеModel; для получения этого вы вызываете getModel().
Затем вы используете getValueAt(int,int), чтобы получить значение определенной ячейки.

Вы говорите, что у вас есть только доступ к JTable внутри анонимного класса.
Итак, область действия JTable - это анонимный класс. Вместо того, чтобы объявлять JTable внутри анонимного класса, вы должны сделать JTable поле включенного класса. Тогда у вас есть доступ к нему.

+0

Проблема заключается в том, что JTable создается внутри MouseListener внутри анонимного класса. Строки будут варьироваться в зависимости от пользовательской записи требуемых строк. Я не могу получить доступ к JTable вне анонимного класса. – user1606826

+0

Я отредактировал ваш вопрос, чтобы отразить это. На [SO] мы можем это сделать - но лучше всего, если вы сделаете это сами. –

2

Использование:

table.getValueAt(row, column);

+0

Проблема заключается в том, что JTable создается внутри MouseListener внутри анонимного класса. Строки будут варьироваться в зависимости от пользовательской записи требуемых строк. Я не могу получить доступ к JTable вне анонимного класса. – user1606826

+0

Вам нужно будет объявить JTable в переменной-члене. Просто обновляйте модель, а не воссоздавайте таблицу каждый раз. – Reimeus

Смежные вопросы