web-dev-qa-db-ja.com

JListアイテムの追加/削除

こんにちは、JListから別の要素を選択し、最初の要素から削除する必要があります。作成したメソッドは要素を1つだけ挿入し、最後の要素を上書きし、選択した項目を最初のJListから削除しません。コードは次のとおりです。

最初のリスト

private javax.swing.JList listaRosa;

この方法で入力:

private void visualizzaRosaButtonvisualizzaRosa(Java.awt.event.ActionEvent evt) {                                                    
    // TODO add your handling code here:
    visualizzaSquadraSelezionata();
    String fileSquadra;
    fileSquadra = squadraDaVisualizzare.getText();
    DefaultListModel listModel = new DefaultListModel();
    try {
        FileInputStream fstream = new FileInputStream("C:/Users/Franky/Documents/NetBeansProjects/JavaApplication5/src/javaapplication5/Rose/"+fileSquadra+"");
        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        //Read File Line By Line
        while ((strLine = br.readLine()) != null)   {
            listModel.addElement(strLine);
            System.out.println(strLine);
        }
        listaRosa.setModel(listModel);
        //Close the input stream
        in.close();
    } catch (Exception e) {
    }

最初のリストから削除するアイテムを挿入する2番目のリスト:

private javax.swing.JList listaTitolari

これは動作しないコードです:

private void aggiungiTitolareButtonActionPerformed(Java.awt.event.ActionEvent evt) {                                                       
    // TODO add your handling code here:
    DefaultListModel listModel = new DefaultListModel();
    String daInserire;
    listModel.addElement(listaRosa.getSelectedValue());
    listModel.removeElement(listaRosa.getSelectedValue());
    listaTitolari.setModel(listModel);
} 

ありがとう

8
Franky

問題は

listModel.addElement(listaRosa.getSelectedValue());
listModel.removeElement(listaRosa.getSelectedValue());

追加と削除の両方の操作が同じlistModelにあるため、要素を追加してすぐに削除している可能性があります。

試す

private void aggiungiTitolareButtonActionPerformed(Java.awt.event.ActionEvent evt) {                                                       

    DefaultListModel lm2 = (DefaultListModel) listaTitolari.getModel();
    DefaultListModel lm1  = (DefaultListModel) listaRosa.getModel();
    if(lm2 == null)
    {
        lm2 = new DefaultListModel();
        listaTitolari.setModel(lm2);
    }
    lm2.addElement(listaTitolari.getSelectedValue());
    lm1.removeElement(listaTitolari.getSelectedValue());        
} 
17
Bala R

JLISTをクリアする最善かつ最も簡単な方法は、次のとおりです。

myJlist.setListData(new String[0]);
11
user1477929