0
私はJTableを持っています。ユーザーが列を選択すると、浮動小数点データがArrayListに追加されます。 ArrayListについていくつかの統計を後で実行しようとします。ArrayListはリスナーの外では利用できません
現在、私はArrayListに必要なデータを追加して管理しており、リスナー内からコンソールに印刷するときにデータを見ることができます。しかし、たとえArrayListがリスナの外側から宣言されていても、リスナの外部からはデータが得られません。
TableColumnModel columnModelCompareL = table_CompareL.getColumnModel();
ArrayList<Float> statsCompareL=new ArrayList<Float>();
columnModelCompareL.addColumnModelListener(new TableColumnModelListener() {
public void columnSelectionChanged(ListSelectionEvent e) {
Object[] data = columnToArray(table_CompareL,table_CompareL.getSelectedColumn());
System.out.println("MY data length"+data.length);
try {
for(int i = 0; i < data.length; i++){
if (data[i]!=null){
try {
statsCompareL.add(Float.parseFloat((data[i]).toString().trim()));
} catch (Exception e1) {
System.out.println("nought to add here");
}
}
}
} catch (NumberFormatException e1) {
System.out.println("You haven't selected a numeric column. Please select again");
}
}
@Override
public void columnAdded(TableColumnModelEvent e) {
}
@Override
public void columnRemoved(TableColumnModelEvent e) {
}
@Override
public void columnMoved(TableColumnModelEvent e) {
}
@Override
public void columnMarginChanged(ChangeEvent e) {
}
});
System.out.println("statsCompareL"+statsCompareL);
あなたはクラスの任意のメソッドの外でのArrayListを宣言しようとしたことがあり、それはあなたのクラス内anywere利用できるようになりますようにすることで?。 – theVoid
はい。私はクラスの上に置いた。私はそれがリスナーからvoidを返すためだと思ったのですが、ArrayListの代わりにvoidのリストを表示しているようです –
最後のコード行が何かを出力することを期待するなら、それはできません。そのコード行はuiの作成中に実行されるため、リスナーは(ユーザーがuiとやりとりしている間に)かなり後で呼び出されるためです。 –