こんばんは、私は JTable を使用して作業しており、このコードは以前の作成から取得しています。私がやりたいことは、テーブルを動的に更新することです。私がそれをどのように行っているかは、情報をリンクリストに保存してから、リストを調べて情報を引き出してテーブルを埋めることです。問題は、null ポインターを取得していて、その理由について混乱していることです。私のスタックトレースの開始は次のとおりです。
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at main$CoverSelection.actionPerformed(main.java:225)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
明らかに、次のように読み取られる 225 行目で発生しています。
CartTable.setModel(new DefaultTableModel(data,ColumnNames));
同様の過去の質問を見ると、私が持っているすべてが初期化されていることを確認するために人々が言及しているのを見続けています。完全なコード:
data = new Object[1][4];
//CartTable.setModel(new DefaultTableModel(data,ColumnNames));
while(abc<OrderList.size())
{
System.out.println(OrderList.get(abc).getIsbn());
System.out.println(OrderList.get(abc).GetTitle());
System.out.println(OrderList.get(abc).getQuantity());
System.out.println(Double.toString(OrderList.get(abc).getPrice()));
//data = new Object[1][4];
//CartTable.setModel(new DefaultTableModel(data,ColumnNames));
if (data== null)
{
data = new Object[1][4];
data[0][0] = OrderList.get(abc).getIsbn();
data[0][1] = OrderList.get(abc).GetTitle();
data[0][2] = OrderList.get(abc).getQuantity();
data[0][3] = Double.toString(OrderList.get(abc).getPrice());
CartTable.setModel(new DefaultTableModel(data,ColumnNames));
}
else
{
System.out.println("In the else part");
Object [][] temp = new Object[data.length+1][4];
for (int rowCt =0; rowCt < data.length; rowCt++)
{
for (int colCt=0; colCt< 4; colCt++)
{
temp[rowCt][colCt] = data[rowCt][colCt];
}
}
temp[data.length][0] = OrderList.get(abc).getIsbn();
temp[data.length][1] = OrderList.get(abc).GetTitle();
temp[data.length][2] = OrderList.get(abc).getQuantity();
temp[data.length][3] = OrderList.get(abc).getPrice();
data = temp;
System.out.println("data length in else: "+data.length);
CartTable.setModel(new DefaultTableModel(data,ColumnNames));//line 225
}
コードは機能し、データが null の場合は最初の if ステートメントを循環しますが、else ステートメントを介して別の行を取得するためにもう一度それを実行すると、エラーが発生します。私のイニシャライザは次のとおりです。
private Object[][] data = null;
private JTable CartTable;
String[] ColumnNames=new String[4];
ヘルプや提案はありますか? 私はすべての拠点を見てカバーしたと思いますが、それを見ることができません。