Hi,
ich wollte eine JListe erstellen und ihr auf der rechten Seite eine eine Bar zum Scrollen hinzufügen, aber die Scroll Bar wird einfach nicht angezeigt (hab schon gegoogelt aber nichts gefunden) hier mal der Quelltext:
Hm, aber wenn ich das weg lasse, wird gar nichts mehr angezeigt. Sorry hab vergessen zu sagen das ich das Layout auf Null gestellt habe. Kann man auch mit keinem Layout Manager eine solche Liste erstellen? (Wenn ich das Layout auf Standart lasse geht die Liste über das ganze Fenster und die Scroll Bar wird immer noch nicht angezeigt, ich möchte aber das die Liste nur auf der linken seite dargestellt wird)
Ok, dachte das es auch mit Null Layout funktioniert, schade eigentlich . Ich habe gleich noch eine andere Frage, über dieses Thema, ist es möglich zur Laufzeit der Liste weitere Objekte hinzuzufügen, also gibt es dafür eine spezielle Methode oder müsste man das Object Array jedes mal wieder neu erzeugen?
Danke für die schnelle Antwort, ist schon komisch in dem Buch über Java was ich gerade lese, steht das zwischen List und JList kein großer Unterschied besteht, aber wenn ich mir das jetzt so anschaue ist der schon ziemlich entscheidend. Irgendetwas haut aber immer noch nicht hin, der Code sieht jetzt so aus:
Code:
DefaultListModel listModel = new DefaultListModel();
listModel.addElement ("Eins");
JList Liste =new JList(listModel);
Liste.setBounds (0,0,200,750);
JScrollPane eins=new JScrollPane (Liste);
getContentPane().add(eins,BorderLayout.WEST);
Jedoch wird die Scroll Leiste immer noch nicht angezeigt :?:
wenn nicht anders angeben wird die ScrollBar nur bei Bedarf angezeigt, und bei einem Eintrag in der Liste denke ich nicht , dass da Bedarf besteht ;-) Erzwingen kann man das indem man z.B. einen anderen Konstruktor der Klasse verwendet:
JScrollPane(int vsbPolicy, int hsbPolicy) siehe auch API
Hm, leider hab ich schon wieder ein Problem, es geht immer noch um die JList. Ich möchte gerne aus der JList per Mausklick ein Element auswählen und je nachdem welches Element ausgewählt ist soll etwas dargestellt werden. Dazu habe ich den ListSelectionListener Implementiert. Wenn man nun auf ein Element der Liste klickt soll ermittelt werden an welcher Position sich das Element in der Liste befindet, jedoch scheint es nur 2 Methoden zu geben, die jedoch beide nicht richtig funktionieren wenn man verschiedenen Elemente nacheinander auswählt, hier mal der code:
Code:
public void valueChanged(ListSelectionEvent evt)
{if (!evt.getValueIsAdjusting()){
int a=evt.getLastIndex();
int b=evt.getFirstIndex();
listModel.addElement(""+a);
listModel.addElement(""+b);
}
Wenn man die Elemente der Reihenfolge nach auswählt, funktioniert es mit getLastIndex(), geht man aber ein Element zurück werden die ermittelten Zahlen vollkommen verändert. Gibt es eine Möglichkeit das zu verhindern?