Netbeans/Java качает вопросы по таблицам/ячейкам

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

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

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

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

У меня есть вид с вкладками, каждый со столом.

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

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

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

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

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

Спасибо.


person Cool Joe    schedule 12.12.2011    source источник


Ответы (3)


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

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

person Jonas    schedule 12.12.2011
comment
Это своего рода зачетная книжка. У меня есть вкладка посещаемости, где я подсчитываю количество отсутствующих. Нажатие галочки на отсутствие увеличивает ее один раз, повторное нажатие уменьшает. Флажки используются по умолчанию для ввода типа bool в DefaultTableModel. - person Cool Joe; 13.12.2011

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

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

person JB Nizet    schedule 12.12.2011

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

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

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

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

person eboix    schedule 12.12.2011