2013-05-21 33 views
-2

我使用“设计”选项在eclipse中创建了JTable,现在我想使某些单元格不可编辑。这是我的代码:设置不可编辑的JTable单元的一部分

public Frame(int choice) { 
     initComponents(); 
     defaultModel = (DefaultTableModel) m0.getModel(); 
     if (choice == 0) { 
     defaultModel.setColumnCount(7); 
     defaultModel.removeRow(6); 
     } 
    defaultModel.isCellEditable(2,2); 
    defaultModel.isCellEditable(3,3); 

} 
public boolean isCellEditable(int row, int column) { 
    return false; 
} 

单元格(2,2)和(3,3)应该是不可编辑的。但它不起作用。有人可以帮忙吗?

+0

必须在为此目的创建或定义的类和方法中使用正确的定义,所有内容都在Oracle教程[如何使用表 - 创建表模型]中进行了描述(http://docs.oracle.com/javase/tutorial /uiswing/components/table.html#data) – mKorbel

回答

1

你看到这里的问题?:

public boolean isCellEditable(int row, int column) { 
    return false; // !!!!!!! 
} 

细胞(2,2)和(3,3)应该为可编辑。但它不起作用。有人可以帮忙吗?

您正在将单元格设置为可用isCellEditable(...)方法覆盖,然后你莫名其妙地想知道为什么它们不可编辑。对不起,但这有点疯狂。解决方法是更改​​isCellEditable(...)方法返回的内容,以便它按照您的要求进行操作。如果你想让它可以编辑2,2和3,3,那么把这个逻辑放在上面的方法中。


编辑
我看到你编辑你的问题,因此现在是:

public boolean isCellEditable(int row, int column) { 
    return false; 
} 

细胞(2,2)和(3,3)应编辑。但它不起作用。有人可以帮忙吗?

这当然会改变一切。我的猜测是你的isCellEditable不是JTable或其模型的真正覆盖。你有没有尝试在它之前添加@Override注释?你能告诉我们它是如何覆盖当前的JTable或它的模型吗?你需要证明这个方法是在扩展JTable或它的模型的类中,并且这实际上是正在使用的类。

+0

对不起 - 我的意思是 - 不可编辑的.... – user2405924

+1

@ user2405924:这个情况越来越严重...请参阅编辑。你的问题必须显示更多。 –

相关问题