我正在爲朋友製作Minecraft服務器的控制檯面板。它正在生成在線玩家列表,並將其放入JList中。這裏是所有有關的一切與JList中的代碼:爲什麼我的JList不會爲java中的jlist.getSelectedValue()提供值?
public class Panel extends JPanel{
private static DefaultListModel listModel = new DefaultListModel();
private static JList list;
public void demo(){
setLayout(new BorderLayout());
add(buttonCommandPanelInAnotherClass, BorderLayout.CENTER);
list = new JList(listModel);
list.setPreferredSize(new Dimension(260, this.getHeight()));
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
list.setLayoutOrientation(JList.VERTICAL);
add(new JScrollPane(list), BorderLayout.WEST);
}
public static void generateUsers(){ //called from a button called refreshList
String s = ... call for the user list ... (s contains ', ' as well as the usernames)
String[] users = s.split(", "); // to seperate only the usernames
for(int i = 0; i < users.length; i++){
listModel.addElement(users[i]);
}
list = new JList(listModel);
}
public String getSelectedPlayer(){ //called when i push a command button, such as ban.
return (String) list.getSelectedValue();
}
}
這樣的測試,我做所有的產生和一切,當generateUsers()被調用,JList中加載所有的我用戶名。但是當我點擊一個按鈕來調用getSelectedPlayer();所有打印在System.out.println()中;一片空白。無論我有多少用戶,結果都是空的。這些按鈕位於同一個窗口中,如上所示。
爲什麼我的輸出只能是null?如果我調用list.getSelectedIndex(),它會產生-1。怎麼了?請幫忙!我可以提供任何更多細節!提前致謝!
謝謝你實際包括解決方案。工作就像一個魅力:) – PulsePanda
沒問題的人(: –