2012-02-28 10 views
2

私はスイングでプログラムを作成していて、いくつかのオブジェクトEを表示するためにJListを使用していました。 ActionListenerの中で私がコード化された:Eclipseでか「xyz.jar -jar Javaの持つコンソールでそれを実行しているときJava - JList.getSelectedValuesList()がjarファイルで動作しない

List<Data> datas = dataList.getSelectedValuesList(); 
for(Data data : datas) 
    deleteData(data); 
dataList.setListData(getDatas()); 

は、これは完全に働きました。ただし、.jarファイルをダブルクリックすると、削除ボタンはまったく機能しませんでした。リストから何も削除されず、エラーが生成されませんでした。

Object[] datas = dataList.getSelectedValues(); 
for(Object data : datas) 
    deleteData((Data)data); 
dataList.setListData(getDatas()); 

この方法は完全に働いた:

はしたがって、私はList.getSelectedValues()メソッドをテストしました。ただし、このメソッドは、JDK 1.7からgetSelectedValuesList()を使用して非推奨になりました。誰かが私に問題を説明することはできますか?それはJavaのビルドの問題ですか?非推奨のメソッドを引き続き使用するにはどうすればよいですか?

ありがとうございます!

+0

マシンに複数のJavaバージョンがインストールされていますか? – Danny

+0

はい、あります。これはどのように問題になるでしょうか? – Morrow

+3

私は、別のバージョンのJavaで実行しているjarをダブルクリックしてから、コマンドラインから実行すると思います。 jarを右クリックし、コンパイルされたjavaと同じバージョンで実行してみてください。 – Danny

答えて

3

複数のバージョンのJavaがインストールされている可能性があります。コマンドラインから実行すると、あるバージョンのJavaでアプリケーションを実行していて、別のバージョンをダブルクリックするとアプリケーションが実行されます。

ダブルクリックするのではなく、右クリックして "Open With ..."を実行し、アプリケーションがコンパイルされたJavaのバージョンを選択する必要があります。

+0

同じ問題を抱えておりまして、ありがとうございます。同じソリューションを使用しました。もう一つの簡単な修正は、このメソッドの単一項目バージョンである 'getSelectedValue()'(該当する場合)を使用することです。もちろん、選択項目は複数ありませんが、Java 6と7で機能します。 – vikingsteve