0
ユーザーが選択したJTable列をArrayListに変換しようとしています。すべての列は(データベースからの)文字列なので、キャストは列の選択時に行われます。しかし、以下のコードを使用すると、NumberformatExceptionが発生し、その理由がわかりません。文字列を整数に解析しようとするときの数値書式の例外
TableColumnModel columnModel = table.getColumnModel();
columnModel.addColumnModelListener(new TableColumnModelListener() {
// other methods
public void columnSelectionChanged(ListSelectionEvent e) {
Object[] data = columnToArray(table,table.getSelectedColumn());
ArrayList<Float> descstats=new ArrayList<Float>();
System.out.println("MY data length"+data.length);
try {
for(int i = 0; i < data.length; i++){
if (data[i]!=null){
System.out.println(Integer.parseInt((data[i]).toString().trim()));
descstats.add(Float.parseFloat((data[i]).toString().trim()));
}
}
} catch (NumberFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
float sum = 0;
}
}
エラー・スタックトレースを投稿してくださいすることができないのだろうか?このメソッドに渡すデータ例 –
推測: 'Integer.parseInt'を行い、' Float.parseFloat'で値を保存します。数値がfloatの場合、 'Integer.parseInt'は失敗し、intにキャストされません(つまり、Integer.parseInt(" 6,2 ")'は例外を返しますが、6を返しません)。 – BackSlash
この例外の原因となる入力は何ですか? – Mureinik