我在尝试设置 Jtable 的值时遇到问题:jTable1。下面的方法称为重置,是我尝试创建的谜题 15 的一部分。调用该方法将值分配给 jTable1 的每个字段。假设 jTable1 已初始化,defaulttablemodel: model 也已初始化。谁能告诉我为什么当我运行代码时这些值不会显示?
private void reset(){
int count=0;
String val=" "+count;
blankRow=3;
blankCol=3;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
model.setValueAt(val,i,j);
count++;
}
}
model.setValueAt(null, blankRow, blankCol);
jTable1=new JTable(model);
jTable1.setBackground(Color.WHITE);
}
最佳答案
您正在创建一个全新的 JTable 对象,它与显示的对象不同。不要这样做,而是设置当前显示的 JTable 的模型。这个可能被 jTable1 变量引用,但我们无法知道。如果它确实引用了可视化 JTable,则只需删除该行即可,
// jTable1 = new JTable(model);
并将其更改为:
jTable1.setModel(model); // change with this
请注意,如果模型变量引用显示的 JTable 的实际模型,则整个方法可以简化为:
model.setRowCount(0);
另请注意,您将希望避免使用正在使用的魔数(Magic Number),因为这种代码非常危险,并且如果您稍后更改表,则可能会出现索引越界异常的风险。
关于java - 在 jtable 中设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31035919/