2017-01-09 6 views
0

Wenn ich meine JList erstelle, kann ich getSelectedValue() verwenden, um die in der Liste ausgewählte Zeichenkette auszudrucken. Sobald ich ändere, was in der Liste ist, ist alles, was zurückgegeben wird, null.JList - `setListData()` bewirkt, dass 'getSelectedValue() `null zurückgibt

Wenn die Liste erstellt wird, ich habe dies:

matchList.setModel(new javax.swing.AbstractListModel<String>() { 
    String[] playerList = {"test"}; 
    public int getSize() { return playerList.length; } 
    public String getElementAt(int i) { return playerList[i]; } 
}); 

Später wechsle ich den JList ein Array von Strings enthalten:

matchList.setListData(Bracket.wr1); 

Alles innerhalb der Matrix wird in dem JList aber wenn ich versuchen Sie, getSelectedValue() zu verwenden, um die angezeigte Zeichenfolge zu erhalten, sie gibt nur null zurück.

Was mache ich falsch?

+0

hm so das einzige Problem ist, dass es kein ausgewähltes Element ist die Optionen nach dem Wechsel? – torkleyy

Antwort

0

Es scheint, dass es keine Auswahl mehr gibt. Nach dem Oracle DocumentationgetSelectedValue()

[r] eturns null, wenn es keine Auswahl gibt.

Also, wenn es mehr keine Standardauswahl ist, sollten Sie vielleicht nur das erste Element als Standard festgelegt:

list.setSelectedIndex(0); 
+0

Okay, es wird nicht mehr null zurückgegeben, aber jetzt kann ich nur die erste Option in der Liste auswählen. Die Funktionsweise des Programms besteht darin, dass Sie ein Element aus der JList auswählen und dann eine Taste drücken, um Informationen einzugeben. Ich denke, was passiert ist, sobald die Taste gedrückt wird, gibt es keine Auswahl mehr auf der Liste. Ich weiß jetzt, dass der Inhalt der Liste nicht das ist, was das Problem verursacht. – sumsum2

+0

@ sumsum2 Könnten Sie mir bitte eine [MCVE] (http://stackoverflow.com/help/mcve) zur Verfügung stellen, damit ich das Problem reproduzieren kann? – torkleyy

+0

@ sumsum2 auch, wenn der Inhalt nicht das Problem ist, ist es schwer für mich, herauszufinden, was dieses Verhalten mit Ihrem aktuellen Code-Snippet verursacht – torkleyy

Verwandte Themen