做了两年SWING,可没做个这个,点击后复制内容到粘贴板的就有
做一个类DataSet,继承TableModel接口的,然后覆盖isCellEditable方法,比如说第一行/第一列要编辑的,就这么写:
public boolean isCellEditable(int rowIndex, int columnIndex) {
return (rowIndex== 0 || columnIndex==0);
}
然后JTable.setModel(DataSet);
要退出编辑状态时候关闭编辑器:
int row=JTable.getSelectedRow();
int col=JTable.getSelectedColumn();
JTable.getCellEditor(row,col).stopCellEditing();
配置一个监听器就行了,swing好久没做了,叫ActionEvent还是ActionListener呢来着。
是行还是列。搞SWING的我建议看看一本书叫SwingHacks,这本书中有很多技巧,之前看过好像有提到你说的这个功能。
table.setDefaultEditor(Object.class, new DefaultCellEditor(new JTextField()) {
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
final Component textField = super.getTableCellEditorComponent(table, value, isSelected, row, column);
if (textField instanceof JTextField) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
((JTextField) textField).selectAll();
}
});
}
return textField;
}
});
加个这个玩意就可以了。