Проблемы с добавлением JButton в таблицу - PullRequest
1 голос
/ 02 августа 2010

Я добавляю Jbutton в таблицу, расширяя класс AbstractCellEditor.Но при нажатии кнопки текст не меняется с «Пуск» на «Стоп». Вот класс, который я реализовал

     public class ButtonEditor1 extends AbstractCellEditor implements     
      TableCellEditor,ActionListener,TableCellRenderer{

       JButton btnSTART =  new JButton("START");
        private JTable table ;

     public ButtonEditor1(JTable table){
    this.table = table;
    btnSTART.addActionListener(this);
    }
public Component getTableCellEditorComponent(JTable table, Object value,
        boolean isSelected, int row, int column) {

    return btnSTART;
}

public Object getCellEditorValue() {
    // TODO Auto-generated method stub

    return btnSTART;
}

public void actionPerformed(ActionEvent e) {
    int row = table.getSelectedRow();
    if(btnSTART.getText().equals("START")){
        if(row != -1){
            btnSTART.setText("STOP");
        }
    }else if(btnSTART.getText().equals("STOP")){

        if(row != -1){
            btnSTART.setText("START");
        }
    }
    fireEditingStopped();
}
public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) {
    return btnSTART;
}

}

что я делаю неправильно ... У меня естьКласс модели, который принимает столбец как JButton и переопределяет методы setValueAt и getValueAt. * ​​1006 *

1 Ответ

2 голосов
/ 02 августа 2010

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

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