gpt4 book ai didi

Java表无法实例化

转载 作者:行者123 更新时间:2023-12-01 18:24:36 25 4
gpt4 key购买 nike

我有以下类(class)

类解析

class Parsing {
private ClassWithTable c = new ClassWithTable();

public void doAction(){
parseRowData();
c.initComponents();
}

private void parseRowData(){
Object[][] rowData = new Object[3][2];
for(int i = 0; i < 3; i++){
rowData[i][0] = "A string";
rowData[i][1] = null;
}
c.setRowData(rowData);
}
}

类ClassWithTable

class ClassWithTable {
private JTable table;
private Object[][]rowData;
private final String[] colNames = new String[]{null,null};

public void initComponents() {
table = new JTable(getRowData(),colNames); //in this line I get the exception
System.out.println(table.getValueAt(1, 1));
}

public void setRowData(Object[][]rowData){this.rowData = rowData;}
private Object[][] getRowData(){return this.rowData;}
public JTable getTable(){return table;}
}

JTableInstantiation 类

public class JTableInstantiation {
public static void main (String[] af){
ClassWithTable c = new ClassWithTable();
Parsing p = new Parsing();
p.doAction();

}
}

当我运行它时,我得到一个 java.lang.NullPointerException 。我发现里面的表ClassWithTable无法实例化,尽管 rowData取所有正确的值。您能向我解释一下为什么会发生这种情况吗?我究竟做错了什么?预先感谢您。

异常表:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.JTable$1.getColumnName(JTable.java:685)
at javax.swing.JTable.addColumn(JTable.java:2801)
at javax.swing.JTable.createDefaultColumnsFromModel(JTable.java:1287)
at javax.swing.JTable.tableChanged(JTable.java:4386)
at javax.swing.JTable.setModel(JTable.java:3688)
at javax.swing.JTable.<init>(JTable.java:632)
at javax.swing.JTable.<init>(JTable.java:573)
at javax.swing.JTable.<init>(JTable.java:684)
at drafts.ClassWithTable.initComponents(JTableInstantiation.java:28)
at drafts.Parsing.doAction(JTableInstantiation.java:10)
at drafts.JTableInstantiation.main(JTableInstantiation.java:41)

最佳答案

跟踪您的字段。您有两个ClassWithTable对象。

JTableInstantiation 类

ClassWithTable vEntity = new ClassWithTable();

您这里有 vEntity。然后你就可以:

  Parsing p = new Parsing();
p.doAction();

看看里面有什么 Parsing

private ClassWithTable c = new ClassWithTable();

您尚未对 vEntity 执行任何操作根本不。您需要分配 vEntity p.getClassWithTable() 的值或通过 vEntityp .

关于Java表无法实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26596576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com