Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 开始编辑时更改JTable单元格边框的颜色(不单击,仅当光标出现时)_Java_Swing_Jtable - Fatal编程技术网

Java 开始编辑时更改JTable单元格边框的颜色(不单击,仅当光标出现时)

Java 开始编辑时更改JTable单元格边框的颜色(不单击,仅当光标出现时),java,swing,jtable,Java,Swing,Jtable,我试图在开始编辑时更改JTable单元格的边框,如:文本光标出现时。您将如何操作?为此,您可以自己编写或使用DefaultTableCellEditor 使用第二种方法,您可以使用此代码执行此操作(table是您的表): 在这里,我使用带有红色边框的JTextField的DefaultCellEditor 我认为它对您有帮助。您所说的“使用”DefaultTableCellEditor是什么意思?它是table Coln的编辑器类,用于编辑您的值,请看我的示例。为表中的列设置该编辑器。这个类提供

我试图在开始编辑时更改JTable单元格的边框,如:文本光标出现时。您将如何操作?

为此,您可以自己编写或使用
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);
}