Neue JList wird nicht sofort angezeigt.

Kai008

Erfahrenes Mitglied
Ich habe 2 JPanels. Auf einem liegen 2 Labels. Registriert eines ein MouseEntered wird das 2. visible geschalten, beim MouseExited invisible.
Am 2. JPanel liegt ein JScrollPane, welches im Konstruktor erstellt wird. Darin befindet sich eine JList, welche leer ist, das Pane selbst ist disable.
Wenn ich jetzt auf das 1. Label mit dem MouseListener klicke, will ich eine neue Liste erstellen. Ich habe nämlich (bitte nicht lachen) die Methode nicht gefunden, mit der man etwas hinzufügen/entfernen kann, deshalb mache ich das durch dem Konstruktor.
Nur leider hat es nicht hin, da sich nichts verändert. Am Anfang dachte ich, dass ich das Panel neu zeichnen muss, wann man das bei Swing muss ist mir immer noch nicht ganz klar. Aber auch wenn ich das tue wird am Anfang nur der Rahmen des Pane's angezeigt. In beiden Fällen wird es erst sichtbar, wenn ich mit der Maus wieder das 1. Label verlasse, wodurch das 2. unsichtbar wird, was die repaint()-Theorie unterstützt. Trotzdem haut es mit einen manuellen nicht hin, auch das JFrame repainten zu lassen hat nichts gebracht.

Mein Source:

Java:
public void selectAlbum(Album album)
{
	List<File> songList = album.getSongs();
	if(songList.size() == 0)
		return;
	
	String[] songArray = new String[songList.size()];
	for(int i = 0; i < songList.size(); i++)
	{
		File song = songList.get(i);
		String songName = song.getName();
		if(songName.endsWith(".mp3"))
			songName = songName.substring(0, songName.length() - 4);
		
		songArray[i] = songName;
	}
	
	JList list = new JList(songArray);
	list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);		
	JScrollPane songPane = new JScrollPane(list,
			JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
			JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
	songPane.setLocation(10, 20);
	songPane.setSize(250, 150);
	if(this.songPane != null)
		this.remove(this.songPane);
	this.songPane = songPane;
	this.add(this.songPane);
	this.repaint();
}

Irgendjemand eine Idee?
 

Neue Beiträge

Zurück