Я добавляю Jbutton к таблице классом extendibg AbstractCellEditor. Но по щелчку кнопки текст не изменяется от "Запуска" до "Остановки" .here, класс, который я реализовал
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.
JTable использует средства визуализации для отображения данных. После того, как вы щелкнете по ячейке, используя кнопку в качестве редактора, редактор кнопок вызывается на долю секунды, а затем ячейка возвращается в режим рендеринга. Поэтому, если вы хотите изменить текст, вы меняете значение в модели.