JList aktualisieren



  • Guten Morgen,

    ich habe eien Frage. Mit folgendem Code erstelle ich eine Liste, welcher ich ein StringArray mit den Pukten übergebe.

    liste = new JList(elements);
    liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    auswahl = new JScrollPane(liste);
    auswahl.setPreferredSize(new Dimension(100,500));
    zelle4.add("Center",auswahl);
    

    Meine Frage ist jetzt wie kann die Liste aktualisieren wenn ich das String Array verändert habe, also ein neues Element hinzufügen möchte oder so.
    Danke.



  • Du musst das Daten-Modell holen und die Daten dort aktualisieren.



  • hi, so in der art:

    DefaultListModel model = (DefaultListModel)list.getModel();
        model.addListDataListener(new MyListDataListener());
    
        class MyListDataListener implements ListDataListener {
            // This method is called when new items have been added to the list
            public void intervalAdded(ListDataEvent evt) {
                DefaultListModel model = (DefaultListModel)evt.getSource();
    
                // Get range of new  items
                int start = evt.getIndex0();
                int end = evt.getIndex1();
                int count = end-start+1;
    
                // Get new items
                for (int i=start; i<=end; i++) {
                    Object item = model.getElementAt(i);
                }
            }
    
            // This method is called when items have been removed from the list
            public void intervalRemoved(ListDataEvent evt) {
                // Get range of removed items
                int start = evt.getIndex0();
                int end = evt.getIndex1();
                int count = end-start+1;
    
                // The removed items are not available
            }
    
            // This method is called when items in the list are replaced
            public void contentsChanged(ListDataEvent evt) {
                DefaultListModel model = (DefaultListModel)evt.getSource();
    
                // Get range of changed items
                int start = evt.getIndex0();
                int end = evt.getIndex1();
                int count = end-start+1;
    
                // Get changed items
                for (int i=start; i<=end; i++) {
                    Object item = model.getElementAt(i);
                }
            }
        }
    

Anmelden zum Antworten