我搜索了在jtable中添加按钮的教程,并从http://tips4java.wordpress.com/2009/07/12/table-button- column/找到了一个类文件, 该按钮在哪里设置?
[code] private void createTable(){ model = new DefaultTableModel(); editorTable.setModel(model); model.addColumn("COL1"); model.addColumn("COL2"); model.addColumn("ADD"); model.addColumn("DELETE"); model.addRow(new Object[]{"DATA1", "DATA2"}); Action delete = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { editorTable = (JTable) e.getSource(); int modelRow = Integer.valueOf(e.getActionCommand()); ((DefaultTableModel) editorTable.getModel()).removeRow(modelRow); } }; ButtonColumn bc = new ButtonColumn(editorTable, delete, 3); bc.setMnemonic(KeyEvent.VK_D); } [/code]
它是通过DefaultTableModel中的数据在表渲染器和编辑器中自动设置的。例如,对于表编辑器,代码为:
public Component getTableCellEditorComponent( JTable table, Object value, boolean isSelected, int row, int column) { ... editButton.setText( value.toString() ); editButton.setIcon( null ); ... }
value表模型的值在哪里。有关详细信息,请参见ButtonColumn.java。
value
编辑:由于要添加4列,您可能应该将行数据更改为
model.addRow(new Object[]{"DATA1", "DATA2", "DATA3", "DELETE"});
以查看第4列上的删除按钮。