30. marts 2003 - 21:46
Der er
16 kommentarer og 2 løsninger
"Tømme" en JList
Vi har nogle JLists som vi vil "tømme" for den tekst som er i dem. Hvordan gøres dette? ...altså tilsvarende etTekstFelt.setText("");
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
30. marts 2003 - 21:49
#1
liste.removeAll();
30. marts 2003 - 21:53
#2
Man kunne vel også bruge: liste.setListData(null); (men jeg har ikke testet..)
30. marts 2003 - 22:02
#3
removeAll() får vi ikke til at fungere... Hvad gør vi forkert? setListData(null); kan ikke bruges, men man kan proppe ind f.eks. en tom Vector: setListData(new Vector()); Det er bare ikke en særlig køn løsning...
30. marts 2003 - 22:06
#4
Hvorfor ikke ? Den tomme vector repræsenterer jo netop JList's datamodel (som også skal være tom).
30. marts 2003 - 22:40
#5
setListData((Vector)null); måske :-)
30. marts 2003 - 23:36
#6
soreno >> Vi burde nok skrevet "Det virker bare ikke som en særlig køn løsning..." Vi får et indtryk af at det er lidt "snyd"...
31. marts 2003 - 00:03
#7
Dette burde virke: list.getModel().removeAllElements(); Da ListModel implementerer DefaultComboBoxModel der har denne metode.
31. marts 2003 - 00:47
#8
pkrasmus har ret, i skal kalde alle opdateringsmetoder på modellen, ikke på JListen. Modellen står for opdatering af View, det er ganske simpel Model View Controller :)
31. marts 2003 - 12:36
#9
Det er mulig vi ikke tænker ordentligt nu, men vi finder ingen removeAllElements() på list.getModel...
31. marts 2003 - 14:30
#10
Du skal caste det til en (DefaultListModel)
31. marts 2003 - 14:32
#11
Eller bare kalde modellen implicit: DefaultListModel model = new DefaultListModel(); JList list = new JList(model); model.removeAllElements();
31. marts 2003 - 14:43
#12
Der kan man se hvad der sker når man skynder sig for meget ;-) Det er selvfølgelig rigtigt 'viht' at der skal castes, så lige for at skære det ud i pap... ((DefaultListModel)list.getModel()).removeAllElements(); ;-)
31. marts 2003 - 16:19
#13
pkrasmus >> Så får vi en ClassCastException... :-(
31. marts 2003 - 16:22
#14
viht >> Din måde fungerer, men det da lidt besværligt med "al" den kode hver gang?
31. marts 2003 - 18:30
#15
Modellen er en privat instansvariablen i klassen, så du skriver bare: private DefaultListModel model; private JList list; public MyClass() { model = new DefaultListModel(); list = new JList(model); } private boolean removeFromList(Object o) { return model.removeElement(o); } private void removeFromList(int index) { model.removeElementAt(index); } private void addToList(Object o) { model.addElement(o); } private void emptyList() { model.removeAllElements(); }
07. april 2003 - 12:25
#16
Det ser da fint ud - viht, vil du have nogle points?
07. april 2003 - 12:34
#17
Tak
07. april 2003 - 12:45
#18
Tak for hjælpen!
Kurser inden for grundlæggende programmering