Добавьте кнопки в JTable, придерживаясь шаблона проектирования контроллера представления модели - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь написать графический интерфейс Java для таблиц и пытаюсь следовать шаблону разработки Model View Controller и принципу инверсии зависимости, как описано здесь:

https://en.wikipedia.org/wiki/Dependency_inversion_principle

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

http://esus.com/jbutton-cell-jtable/

Основной код выглядит следующим образом:

class StrategyTableModel extends AbstractTableModel {
  this.data = new Object[rows][COLUMN_NAMES.length];

  @Override
  public Object getValueAt(int rowIndex, int columnIndex) {
    switch (columnIndex) {
    case 1: final JButton button = new Jbutton();
            return button;
    default: return data[rowIndex][columnIndex];
    }
  }

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

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