タイトルが表示されているので、選択した項目をJList
に取得し、ボタンを押したときに2番目のJList
に追加しようとしています:だからJListから別のJListにgetSelectedValue()をしようとするとエラーが発生する
btnAdd.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
list_1.addElement(list.getSelectedValue());
}});
、私はAddElement
で、それがこのエラーのbecasue、このように見て、Object
にlist_1
をキャストするために私を頼む、という書き込み:
次にそれとしてキャストを追加した後私に尋ねます、もし私が何も追加しなかった。
私の質問は、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);
私はリスト/モデルの異なる種類の多くのウェブサイトを訪問し、私は本当に私はcouldn JList
の使用方法を取得しないようにしています私が間違っていることを理解していない。
はい、他のウェブサイトを訪れたときの問題は、デフォルトでJlistをクリックして適切な場所に移動したように、モデルを呼び出す名前があるということです。 AbstractListModelのメソッドの、しかし私はそれを呼び出す方法がわかりません。 ところで私はあなたが私に与えたウェブサイトが言っていることを引用します:listModel.insertElementAt(employeeName.getText()、index); 私はその部分を行うことができると想像します。私は何かを変更する必要はありません、まったく同じです(defaultListModelにオブジェクトを追加する場合を除きます)? –
私はあなたが 'addElement()'メソッドを使うことを提案しました。モデルの最後にオブジェクトを追加するだけです。 'insertElementAt(...)'は、オブジェクトを特定の位置に追加する場合にのみ使用します。私は他のウェブサイトは気にしない。チュートリアルリンクには完全な実例があります。例のようにコードを構造化すれば、問題は発生しません。 – camickr
私はこれを行いました:list_1.addElement()= list.getSelectedValue(); しかし、私は新しいエラーが表示されます: "割り当ての左側は変数でなければなりません" 私はlist_1それは変数だと思うので、私は再び問題を取得しません –