java jTable: как узнать номер строки? - PullRequest
1 голос
/ 20 июня 2011

Я написал класс, который реализует TableCellRenderer, так как я хочу поставить флажки внутри jTable.В методе getTableCellRendererComponent этого класса у меня есть условие:

if (isSelected) {do .....}

внутри условия if, как я могу узнать номер строки?

код:

 private static class ValueRenderer extends JCheckBox
    implements TableCellRenderer {

    private static final Color hilite = new Color(0xE8E8E8);

    public ValueRenderer() {
        this.setOpaque(true);
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int col) {
        Value v = (Value) value;
        this.setSelected(v.selected);

        if(isSelected)
        {
            if(v.selected==true)
            System.out.println("checked"); 
            else System.out.println("unchecked");
        }
        return this;
    }
}

  private static class Value {
    private Boolean selected;

    public Value(Boolean selected) {
        this.selected = selected;

    }



}

Ответы [ 2 ]

3 голосов
/ 20 июня 2011

Почему вы создаете класс Value и пользовательский рендер?Из кода это просто логическое значение.Просто добавьте Boolean непосредственно в TableModel, а затем переопределите метод getColumnClass () JTable или TableModel, чтобы вернуть Boolean, и таблица будет использовать логический рендерер по умолчанию.

Прочитайте JTable API и перейдите по ссылке наУчебник Swing по использованию таблиц для примера, в котором используются логические значения.

0 голосов
/ 20 июня 2011

Используйте параметр строки, переданный вашему рендереру.Он основан на нуле, как массивы в Java.

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