在JTable中设置CellEditor可以通过以下步骤完成:
下面是一个示例代码,演示如何在JTable中设置CellEditor:
import javax.swing.*;
import javax.swing.table.*;
public class CustomCellEditor extends AbstractCellEditor implements TableCellEditor {
private JTextField textField;
public CustomCellEditor() {
textField = new JTextField();
}
@Override
public Object getCellEditorValue() {
return textField.getText();
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
textField.setText((String) value);
return textField;
}
}
// 在使用JTable时,将自定义的CellEditor应用到指定列
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] columnNames = {"Name", "Age", "Gender"};
Object[][] data = {
{"John", "25", "Male"},
{"Alice", "30", "Female"}
};
DefaultTableModel model = new DefaultTableModel(data, columnNames);
JTable table = new JTable(model);
// 设置第一列的CellEditor为自定义的CellEditor
TableColumn column = table.getColumnModel().getColumn(0);
column.setCellEditor(new CustomCellEditor());
JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane);
frame.pack();
frame.setVisible(true);
}
}
在上述示例中,我们创建了一个CustomCellEditor类,它继承自AbstractCellEditor类并实现了TableCellEditor接口。在getTableCellEditorComponent方法中,我们返回了一个JTextField作为编辑器组件。然后,在主程序中,我们将CustomCellEditor应用到了JTable的第一列。
这样,当用户双击第一列的单元格时,就会弹出一个文本框,可以编辑单元格的内容。编辑完成后,按下回车键或者点击其他单元格,编辑器会自动将编辑后的值保存到表格中。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云