Java 开始编辑时更改JTable单元格边框的颜色(不单击,仅当光标出现时)
我试图在开始编辑时更改JTable单元格的边框,如:文本光标出现时。您将如何操作?为此,您可以自己编写或使用Java 开始编辑时更改JTable单元格边框的颜色(不单击,仅当光标出现时),java,swing,jtable,Java,Swing,Jtable,我试图在开始编辑时更改JTable单元格的边框,如:文本光标出现时。您将如何操作?为此,您可以自己编写或使用DefaultTableCellEditor 使用第二种方法,您可以使用此代码执行此操作(table是您的表): 在这里,我使用带有红色边框的JTextField的DefaultCellEditor 我认为它对您有帮助。您所说的“使用”DefaultTableCellEditor是什么意思?它是table Coln的编辑器类,用于编辑您的值,请看我的示例。为表中的列设置该编辑器。这个类提供
DefaultTableCellEditor
使用第二种方法,您可以使用此代码执行此操作(table
是您的表):
在这里,我使用带有红色边框的JTextField
的DefaultCellEditor
我认为它对您有帮助。您所说的“使用”DefaultTableCellEditor是什么意思?它是table Coln的编辑器类,用于编辑您的值,请看我的示例。为表中的列设置该编辑器。这个类提供了默认的java。所以我创建了一个类来扩展
DefaultTableCellEditor
并覆盖getCellEditor
方法,然后在main
方法中我放了这个循环?或者这个循环放在哪里?循环?为什么?你试过我的例子吗?!它能做你需要的一切。在我的答案中选中getCellEditor方法,它返回您需要的DefaultTableCellEditor,将其设置为column。您不需要任何子类。如果您在我的答案中设置了关于循环的选项,它会将编辑器设置为表中的所有列,请在创建表后将其放置。您的答案中有一个for循环:)我现在明白了,它可以工作了!我认为它会覆盖一些默认的编辑器方法,你的答案其实很简单,谢谢!
for(int i =0;i<table.getColumnCount();i++){
table.getColumnModel().getColumn(i).setCellEditor(getCellEditor());
}
private TableCellEditor getCellEditor() {
JTextField f = new JTextField();
f.setBorder(BorderFactory.createLineBorder(Color.RED));
return new DefaultCellEditor(f);
}