Уведомление, когда установлен флажок в JTable - PullRequest
4 голосов
/ 09 сентября 2010

Я долго искал это и нигде не нашел ясного примера.Я новичок в Java, использующий NetBeans.У меня есть логическое значение в первом столбце JTable (называемое «Включено»), и у меня есть некоторый код плагина, который мне нужно вызвать, чтобы увидеть, есть ли у него настройки, необходимые для включения, и если нет, отобразитьокно сообщения и запретить проверку.

Все, что мне действительно нужно, это чтобы функция вызывалась, когда флажок установлен, и я могу взять его оттуда.У кого-нибудь есть пример как это сделать?

Спасибо за помощь!

Гарри

Ответы [ 2 ]

2 голосов
/ 09 сентября 2010

Возможно, вы хотите TableModelListener, как описано в Прослушивание изменений данных .В качестве альтернативы вы можете использовать пользовательский редактор , как описано в Основные понятия: редакторы и средства визуализации и следующий раздел.

1 голос
/ 09 сентября 2010

Все, что мне действительно нужно, это функция для вызываться, когда установлен флажок

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

Чтобы запретить редактирование ячейки, нужно переопределить метод isCellEditable (...) JTable. Переопределив этот метод, вы можете динамически определять, должна ли ячейка редактироваться или нет.

JTable table = new JTable( ... )
{
    public boolean isCellEditable(int row, int column)
    {
        int modelColumn = convertColumnIndexToModel( column );

        if (modelColumn == yourBooleanColumn)
            return isTheBooleanForThisRowEditable(row);
        else
            return super.isCellEditable(row, column);
    }
};

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

...