Tôi có một JList với một số mục. Tôi đã thêm một người nghe khi một mục trong danh sách được chọn. Đây là mã cho những gì sẽ xảy ra khi một mục trong danh sách được chọn:Tại sao lựa chọn JList xảy ra hai lần?
private void questionaireNamesListValueChanged(ListSelectionEvent evt) {
try {
inputPanel.setEnabled(false);
inputPanel.setVisible(false);
inputTextField.setText("");
inputStatusLabel.setText("");
int questionaireIndex = questionaireNamesList.getSelectedIndex();
// Why will this be printed twice?
System.out.println("Questionaire Index: " + questionaireIndex);
if (remoteQuestionServer.getQuestionCount(questionaireIndex) == 5) {
answerQuestionButton.setEnabled(true);
addQuestionButton.setEnabled(false);
} else {
addQuestionButton.setEnabled(true);
answerQuestionButton.setEnabled(false);
}
} catch (RemoteException ex) {
ex.printStackTrace();
}
}
Như bạn có thể ở trên tôi đặt một tuyên bố System.out.print
trong và mỗi khi tôi click vào một cái gì đó trong danh sách tôi nhận được hai ouputs cho mục đó , ví dụ.
Questionaire Index: 4
Questionaire Index: 4
Questionaire Index: 2
Questionaire Index: 2
Questionaire Index: 0
Questionaire Index: 0
Questionaire Index: 2
Questionaire Index: 2
Bất kỳ ý tưởng nào tại sao điều này đang xảy ra?
Cảm ơn, Patrick
Nếu chỉ mục 4 được bỏ chọn thì tại sao getSelectedIndex() trả về 4 chứ không phải -1? –
Tôi đã chỉnh sửa câu trả lời của mình để giải thích. – Eddie
Bạn nói nếu chỉ số # 4 được CHỌN thì nó có thể trả về 2 hoặc -1 một cách hợp pháp. Tại sao 2? –