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); } } }