Netbeans / Java Swing вопросы о таблицах / ячейках - PullRequest
2 голосов
/ 13 декабря 2011

Мне нужно сделать 5-минутную презентацию о проекте, который я должен реализовать.

Глупо, я выбрал проект, который слишком много для 5-минутной презентации.

Также я откладывал.Учитель говорит, что все в порядке, но я вроде "обманываю" с помощью построителя графического интерфейса Netbeans.

У меня есть готовый макет, но нет функциональности.

У меня есть представление с вкладками, каждое с таблицей.

Позволяет использовать jTable1 в качестве моего примера.Эта таблица имеет 3 столбца, один для имени (строка), один для числа (объект ??) и один с флажком (логическое значение).

Мой вопрос: я хочу проверитьустановите флажок в 3-м столбце, а затем обновите столбец номера в зависимости от того, сколько раз я установил этот флажок.

Как я могу сделать это, используя GUI Builder или ручное кодирование с событиями / привязками / подключением / или с тем, что мне нужно?

Теперь позвольте мне кое-что прояснить:

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

Спасибо.

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

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

См. http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#data о том, как реализовать табличную модель.

1 голос
/ 13 декабря 2011
  1. Щелкните правой кнопкой мыши по вашему флажку.
  2. В раскрывающемся меню выберите События -> Действие -> actionPerformed
  3. В своем недавно созданном методе выМожно добавить код, который вы хотите выполнить.Используйте http://docs.oracle.com/javase/tutorial/uiswing/components/table.html, чтобы помочь вам отредактировать вашу таблицу.

Например, если вы создали свою таблицу, передав Object[][] с именем data в конструктор, вы можете обновитьтаблица с:

data[row][col] = value;
table.fireTableCellUpdated(row, col);

Надеюсь, это помогло!

1 голос
/ 13 декабря 2011

См. Как использовать таблицы о том, как реализовать ваш CellEditor.Вы также должны реализовать AbstractTableModel для этого, чтобы сохранить состояние.Это не очень легко в первый раз, когда вы это делаете.См. Мой вопрос Как сделать JButton в ячейке JTable активным по клику? для некоторых подсказок.

Но вы неправильно используете флажки.Если вы собираетесь считать клики, лучше выбрать JButton.

...