как установить рендерер на флажок в jtable для строки?

  1. Я установил рендерер на флажок на jtable, используя следующий код

    Object[] ColumnData = {"Sr No","Ward Name","Total voters","Action"};
    Object[][] RawData=null;
    

    // в цикле

    model.insertRow(x, новый объект[]{ключ,ward_name_var,total_vot_var,новый объект[]{o}}); модель.setValueAt (о, х, 3); tblWard.setModel (модель);

    Setchk(tblWard,3,checkbox); // вызывая этот метод, который содержит следующее

    private void Setchk (JTable jTable1, int i, флажок JCheckBox) { jTable1.getColumnModel().getColumn(i).setCellRenderer((новый CWCheckBoxRenderer())); jTable1.getColumnModel().getColumn(i).setCellEditor(новый CheckBoxCellEditor()); }

Цитата

как мы можем попробовать для строки установить флажок на jtable. заранее спасибо.


person Pavan Gomladu    schedule 28.03.2012    source источник
comment
Что вы имеете в виду под «установить средство визуализации для строки». Используемый модуль визуализации зависит от данных в конкретной ячейке (например, для целого числа требуется другой модуль визуализации, чем для логического значения), и эти данные имеют одинаковый тип в каждом столбце. Так что имеет смысл устанавливать рендерер только для столбца, а не для строки   -  person Robin    schedule 28.03.2012


Ответы (2)


Если ваши данные имеют тип Boolean.class, рендеринг по умолчанию будет отображаться флажок. Чтобы изменить флажок в определенной строке, вам потребуется соответствующий CellEditor. Рендеринг/редактор по умолчанию используется здесь; пользовательские компоненты проиллюстрированы здесь.

person trashgod    schedule 29.03.2012

Вы можете просто переопределить метод getCellRenderer вашего JTable, чтобы вернуть желаемый рендерер для данной строки. Пример:

JTable table = new JTable() {
    TableCellRenderer getCellRenderer(int row, int column) {
        if (row == checkBoxRow)
            return myCheckBoxRenderer;
        else
            return super.getCellRenderer(row, column);
    }
};
person cgull    schedule 29.03.2012