2012-01-18 17 views
6

多くの研究にもかかわらず、私は答えを見つけたり、JList内の選択されたテキスト要素を変数に取得する方法を解決することはできません。したがって、私はいくつかの助けをpreciateだろう。選択した要素のインデックスを選択しようとしましたが、このコードで要素を削除しても問題ありませんが、書きましたが、ボタンを押した後に選択したテキストを変数にしたいとします。ありがとう!私のJListのコードのJList内のテキスト要素を変数に取得しますか?

int index = list.getSelectedIndex(); 
model.removeElementAt(index); 

パーツ:私のActionListenerコードの

model = new DefaultListModel(); 
list = new JList(model); 
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); 
JScrollPane listScroller = new JScrollPane(list); 
listScroller.setPreferredSize(new Dimension(430, 60)); 

パーツ:

// Select customer 
if(event.getSource() == buttonSelectCustomer){ 
int index = list.getSelectedIndex(); // Just for test 
model.removeElementAt(index); // Just for test 
int number = model.getSize(); // Just for test 
//String selectedText = list.getSelectedValue(); // Not working! 
} 

答えて

7

現在選択されているインデックスとListModel#getElementAt(int)メソッドを使用します。あなたのモデルにStringインスタンスのみが含まれていることが確かな場合は、Stringに直接キャストすることができます。

+0

感謝を再生するために は、ここで簡単なコード・スニペットです。私はこれをタイプします:String selectedText = model.getElementAt(index); EclipseからオブジェクトからStringに変換できないというエラーが表示されます。 –

+1

あなたはそれをキャストしなければなりません...これは、チュートリアルを手に入れて読むのが良いポイントではありません。あなたの問題については、 'String selectedText =(String)model.getElementAt(index);'を使用してください。これはEclipseがこれをあなたのために修正することで実現できます。 – Robin

+0

Robinに同意します。いくつかのJava初心者のチュートリアルを読んで、おそらくスイングしてください。 – tichy

2

選択した要素を削除した後に取得しようとするため、選択したテキストを取得できません。 あなたのコードを変更することができます

if(event.getSource() == buttonSelectCustomer) 
{ 
    int index = list.getSelectedIndex(); // Just for test 
    model.removeElementAt(index); // Just for test 
    int number = model.getSize(); // Just for test 
    String selectedText = list.getSelectedValue(); // Not working! 
} 

私のコードに:

if(event.getSource() == buttonSelectCustomer) 
{ 
    String selectedText = (String)list.getSelectedValue(); // it works 
    int index = list.getSelectedIndex(); // Just for test 
    model.removeElementAt(index); // Just for test 
    int number = model.getSize(); // Just for test 
} 

それが動作します。

+0

はい、私はそれを発見しましたが、主な問題は、テキストを文字列変数に変換すると、プログラムを実行する前にEclipseでエラーが発生し、要素が削除されたことがわかりました。コードのその部分を削除するのを忘れてしまった。ありがとう! –

+0

私はそれを得る、あなたは大歓迎です。 – Alanmars

-1

選択したインデックスのアイテムを簡単に取得できます。

String[] string = new String[]{"Hello","Hi","Bye"}; 
JList list = new JList(string); 

今すぐ文字列として選択した項目を取得するには、次のコードを使用します:

String item = list.getSelectedIndex().toString(); 
関連する問題