Java table model设置编辑状态
时间: 2023-10-08 18:10:17 浏览: 110
jquery将table表格变成可编辑
5星 · 资源好评率100%
要设置Java表格模型的编辑状态,您需要执行以下步骤:
1. 创建一个继承自AbstractTableModel的TableModel类。
2. 在TableModel类中覆盖isCellEditable方法,以便根据需要返回true或false。
3. 将TableModel设置为JTable的模型。
4. 在需要编辑单元格的地方,调用JTable的editCellAt方法。
以下是一个简单的示例代码,演示如何设置表格模型的编辑状态:
```java
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
public class MyTableModel extends AbstractTableModel {
private Object[][] data;
private String[] columnNames;
public MyTableModel(Object[][] data, String[] columnNames) {
this.data = data;
this.columnNames = columnNames;
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public String getColumnName(int col) {
return columnNames[col];
}
public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
public boolean isCellEditable(int row, int col) {
// Make the first cell of each row editable
return (col == 0);
}
public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
public static void main(String[] args) {
Object[][] data = {
{"John", "Doe", new Integer(40), new Boolean(false)},
{"Jane", "Doe", new Integer(30), new Boolean(true)},
{"Bob", "Smith", new Integer(20), new Boolean(false)},
{"Bill", "Jones", new Integer(50), new Boolean(true)}
};
String[] columnNames = {"First Name", "Last Name", "Age", "Married?"};
MyTableModel model = new MyTableModel(data, columnNames);
JTable table = new JTable(model);
// Enable cell editing
table.setCellSelectionEnabled(true);
table.setEditingRow(0);
table.editCellAt(0, 0);
JFrame frame = new JFrame();
frame.add(new JScrollPane(table));
frame.pack();
frame.setVisible(true);
}
}
```
在这个示例中,我们覆盖了isCellEditable方法,并将第一列的单元格设置为可编辑。我们还调用了JTable的editCellAt方法,以便在启动应用程序时编辑第一个单元格。
阅读全文