JList-Probleme

Status
Nicht offen für weitere Antworten.

cyberfox

Mitglied
Hi!

Habe folgendes vor:
Ich möchte eine JList erzeugen, die je nach Anzahl der Elemente die Möglichkeit zu scrollen gibt.
Habe mir verschiedene Themen hier im Forum angeguckt, hab es allerdings nicht hinbekommen.

Code:
public class NewArrangement extends JFrame implements ActionListener{
    ...

    String listData[] = {"1", "2", "3", "4", "5", "5", "5", "5" , "5", "5", "5", "5"};
    public JList jliAvailableAttributes = new JList(listData);

    ...

    JScrollPane spForListOfAvailableAttributes = new JScrollPane();
    spForListOfAvailableAttributes.setBounds(10,60,125,140);
    jpAttributesArea.add(spForListOfAvailableAttributes);
}

Folgendes... Es wird die JList erstellt. Allerdings werden die Inhalte die sich außerhalb des sichtbaren Bereichs befinden nicht angezeigt, da keine ScrollBars eingeblendet werden. Woran kann das liegen? ???:L
Es wird eine JList erstellt und die Elemente sind auch darin enthalten! Nur die Scrollbars haben keine rechte Lust 😉

Hab dann noch ne Frage:

Ist es irgendwie möglich, falls eine solche JList existiert, neue Einträge hinzuzufügen und die Liste dann neu auszugeben? Wenn ja, wie?

Wäre über Hilfe sehr dankbar!

Gruß
Cyberfox
 
Du hast auch nicht den üblichen Fehler gemacht und die Liste direkt auf ein Panel gesetzt!?
cyberfox hat gesagt.:
Ist es irgendwie möglich, falls eine solche JList existiert, neue Einträge hinzuzufügen und die Liste dann neu auszugeben? Wenn ja, wie?
Nimm ein ListModel
EDIT:

Code:
    public JList jliAvailableAttributes = new JList(listData);
    JScrollPane spForListOfAvailableAttributes = new JScrollPane(jliAvailableAttributes);
was sind das nur für quälend lange Bezeichner :autsch:
 
Doch ich habe die Liste direkt in ein JScrollPane gesetzt... Siehst Du ja oben im Code.
Wie genau würdest Du das denn realisieren?

Wie funktioniert das mit dem Model?
 
cyberfox hat gesagt.:
Doch ich habe die Liste direkt in ein JScrollPane gesetzt... Siehst Du ja oben im Code.
Wie genau würdest Du das denn realisieren?

Wie funktioniert das mit dem Model?
Bin ich jetzt blind? Wo setzt du die Liste in die ScrollPane?
MVC -> Model sagt bescheid wenn es sich ändert damit die GUI (JList) sich aktualisieren kann
 
Oh sry!
Hab diesen Teil des Programms nicht gepostet:

Code:
spForListOfAvailableAttributes.add(jliAvailableAttributes);

Hier wird also die JList in das oben angelegte ScrollPane eingefügt! Aber trotzdem keine Scrollbars...

Wie genau muss ich dieses MVC denn anwenden? Gibts da irgendwie etwas wie

Code:
jliAvailableAttributes.add(...);
 
Code:
scrollPane.setViewPort(bluppList);
Anstatt der JList ein Array zu übergeben nimmst du einfach ein DefaultListModel
 
Zum DefaultListModel gabs schon zig Beiträge im Forum.

Aber ich würde dich bitten doch echt andere Bezeichner zu wählen, das ist ja eine Quälerei für die Augen...😉

edit:
hier auch eine gute QUelle:

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JList.html

Hier steht auch das mit dem JScrollPane:

JList doesn't support scrolling directly. To create a scrolling list you make the JList the viewport view of a JScrollPane. For example:

JScrollPane scrollPane = new JScrollPane(dataList);
// Or in two steps:
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().setView(dataList);
 
mic_checker hat gesagt.:
Aber ich würde dich bitten doch echt andere Bezeichner zu wählen, das ist ja eine Quälerei für die Augen...😉
Ich vermute mal CyberFox hat eine IDE mit Auto-Completion für sich entdeckt, tippen kann das ja kein Mensch :bloed:
 
wenn du das forum wirklich durchsucht hättest, hättest du gesehen, dass das so nicht geht sondern entweder wie wildcard es bereits oben geschrieben hat oder mit setViewportView()
 
Sry, wenn es Euch nervt! Weiß aber nicht, wen ich sonst fragen soll. Ich hab jetzt folgende Klasse angelegt:

Code:
public class JListModel extends DefaultListModel{
	public JListModel(){
		final DefaultListModel model = new DefaultListModel();
	}
}

Jetzt habe ich in der oben aufgeführten Klasse folgendes eingefügt:

Code:
	public JListModel model = new JListModel();
	public JList jliAvailableAttributes = new JList(model);

Damit müsste der Liste ja nun dieses DefaultModel zugewiesen sein!
Allerdings stellt sich jetzt immernoch die Frage, wie ich neue Daten hinzufüge, die Liste aktualisiere und wie ich die Scrollbars hinbekomme...
 
cyberfox hat gesagt.:
Damit müsste der Liste ja nun dieses DefaultModel zugewiesen sein!
Allerdings stellt sich jetzt immernoch die Frage, wie ich neue Daten hinzufüge, die Liste aktualisiere und wie ich die Scrollbars hinbekomme...
mic_checker hat zwar recht, aber trotzdem nochmal:
1-2) Daten über das Model ändern, der Rest ergibt sich von alleine
3) Das haben dir in diesem Thread doch jetzt schon 3 Leute gesagt :autsch:
 
Oben den Post bez. des ScrollPanes habe ich leider übersehen!
Tut mir leid, wenn ich euch genervt habe 😉

Aber ich habs hinbekommen! Somit ist das Thema vom Tisch!
THX! :toll:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben