gpt4 book ai didi

java - 在表中添加 JButton 的问题

转载 作者:行者123 更新时间:2023-11-30 05:10:55 24 4
gpt4 key购买 nike

我通过extendibg AbstractCellEditor 类将Jbutton 添加到表中。但是单击按钮时,文本不会从“开始”更改为“停止”。这是我实现的类

     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;
}

}

我做错了什么..我有一个 Model 类,它将列作为 JButton 并重写了 setValueAt 和 getValueAt 方法。

最佳答案

JTable 使用渲染器来显示数据。使用按钮作为编辑器单击单元格后,会立即调用按钮编辑器,然后单元格将返回渲染模式。因此,如果您想更改文本,请更改模型中的值。

关于java - 在表中添加 JButton 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3388933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com