2016-10-28 2 views
0

タイトルが表示されているので、選択した項目をJListに取得し、ボタンを押したときに2番目のJListに追加しようとしています:だからJListから別のJListにgetSelectedValue()をしようとするとエラーが発生する

btnAdd.addActionListener(new ActionListener(){ 

      public void actionPerformed(ActionEvent arg0) { 


list_1.addElement(list.getSelectedValue()); 

}}); 

、私はAddElementで、それがこのエラーのbecasue、このように見て、Objectlist_1をキャストするために私を頼む、という書き込み:
enter image description here

次にそれとしてキャストを追加した後私に尋ねます、もし私が何も追加しなかった。

私の質問は、JListから別のJListに何かを追加するにはどうすればいいですか?最後に追加したアイテムやselectedItemを削除するときに同じ問題が発生する場合は、その防止方法を教えてください。

フルコード:

JList list = new JList(); 
scrollPane.setViewportView(list); 
list.setModel(new AbstractListModel(){ 
    String[] values = new String[] {"Aceite de oliva", "Aceitunas negras", "Aceitunas verdes", "Albahaca", "Alcachofa", "Anchoas", "Berenjena", "Cebolla", "Cereza", "Champiniones", "Durazno", "Harina de garbanzo", "Huevo", "Jam\u00F3n", "Jam\u00F3n serrano", "Ma\u00EDz", "Morr\u00F3n rojo", "Morr\u00F3n verde", "Or\u00E9gano", "Palmitos", "Pi\u00F1a", "Queso cheddar", "Queso crema", "Queso gorgonzola ", "Queso muzzarella", "Queso parmesano", "Salame", "Tomates", "Tomillo"}; 

    public int getSize() { 
     return values.length; 
    } 

    public Object getElementAt(int index) { 
     return values[index]; 
    } 
}); 

list.setToolTipText(""); 
list.setBackground(Color.LIGHT_GRAY); 

JScrollPane scrollPane_1 = new JScrollPane(); 
scrollPane_1.setBounds(373, 28, 184, 257); 
contentPane.add(scrollPane_1); 

JList list_1 = new JList(); 
list_1.setModel(new AbstractListModel() { 
    String[] values2 = new String[] {"", "", "", "", "", "", "", "", ""}; 
    public int getSize() { 
     return values2.length; 
    } 
    public Object getElementAt(int index) { 
     return values2[index]; 
    } 
}); 

list_1.setBackground(Color.LIGHT_GRAY); 
scrollPane_1.setViewportView(list_1); 

enter image description here

私はリスト/モデルの異なる種類の多くのウェブサイトを訪問し、私は本当に私はcouldn JListの使用方法を取得しないようにしています私が間違っていることを理解していない。

答えて

3

JListDefaultListModelObjectを追加する必要があります。

DefaultListModeladdElement(...)メソッドを使用できます。

i really don't get how to use JLists

JListの基本については、How to Use ListsのSwingチュートリアルのセクションを参照してください。 ListDemoの例の"Hire"ボタンをクリックすると、これを行う方法が表示されます。それはinsertElementAt(...)メソッドを使用しますが、コンセプトは同じです。

+0

はい、他のウェブサイトを訪れたときの問題は、デフォルトでJlistをクリックして適切な場所に移動したように、モデルを呼び出す名前があるということです。 AbstractListModelのメソッドの、しかし私はそれを呼び出す方法がわかりません。 ところで私はあなたが私に与えたウェブサイトが言っていることを引用します:listModel.insertElementAt(employeeName.getText()、index); 私はその部分を行うことができると想像します。私は何かを変更する必要はありません、まったく同じです(defaultListModelにオブジェクトを追加する場合を除きます)? –

+0

私はあなたが 'addElement()'メソッドを使うことを提案しました。モデルの最後にオブジェクトを追加するだけです。 'insertElementAt(...)'は、オブジェクトを特定の位置に追加する場合にのみ使用します。私は他のウェブサイトは気にしない。チュートリアルリンクには完全な実例があります。例のようにコードを構造化すれば、問題は発生しません。 – camickr

+0

私はこれを行いました:list_1.addElement()= list.getSelectedValue(); しかし、私は新しいエラーが表示されます: "割り当ての左側は変数でなければなりません" 私はlist_1それは変数だと思うので、私は再び問題を取得しません –

関連する問題