친구를 위해 Minecraft Server 용 콘솔 패널을 만들고 있습니다. 온라인 플레이어 목록을 생성하여 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 얼마나 많은 사용자가 있더라도 결과는 null입니다. 위에 표시된 것과 같이 단추가 동일한 창에 있습니다.내 출력이 항상 null입니까? list.getSelectedIndex()를 호출하면 -1이 생성됩니다. 뭐가 문제 야? 도와주세요! 나는 더 자세한 내용을 줄 수있어! 미리 감사드립니다!
실제로 솔루션을 포함 해 주셔서 감사합니다. 매력처럼 일했다 :) – PulsePanda
문제 남자 (: –