同じ行の他の 2 つのセルの乗算でセルを埋めようとすると、StackOverflowError が発生します。コードは次のとおりです。
tableModel.addTableModelListener(new TableModelListener(){
public void tableChanged(TableModelEvent e)
{
DefaultTableModel model = (DefaultTableModel)e.getSource();
//Object data = model.getValueAt(e.getFirstRow(), e.getColumn());
if (e.getColumn() == 0)
{
Object data = model.getValueAt(e.getFirstRow(), e.getColumn());
String stockSymbol = (String)data;
XMLService2 myService = new XMLService2(stockSymbol);
String stockName = XMLService2.getStockName();
model.setValueAt(stockName, e.getFirstRow(), e.getColumn() + 1);
}
if (model.getValueAt(e.getFirstRow(), 2) != null && model.getValueAt(e.getFirstRow(), 3) != null)
{
Double myDouble =(Integer)model.getValueAt(e.getFirstRow(), 2)*(Double)model.getValueAt(e.getFirstRow(), 3);
model.setValueAt(myDouble, e.getFirstRow(), 4);
}
}
});
setValueAt 関数を呼び出すこのコードの最後の行は、StackOverflowError を生成しています。ありがとうございました。
PS : テーブルは 5 つの列で構成されています。3 列目の型は整数です。4 列目の型は Double です。3 番目と 4 番目のセルの乗算の結果を取得する 5 列目の型は Double です。