對於我的應用程序,我使用一個數據庫並需要添加和刪除項目到數據庫中。我有一種方法,當您從列表中選擇一個項目時,使按鈕變爲可見,此按鈕允許您刪除該項目。我已經使用過這2次,但對於下面的代碼它不起作用。當我調試它時,我注意到它在兩次通過我的if和第二次它說它沒有選中,所以它讓我回到空。爲什麼它會兩次通過if並且第二次返回null?
private void lstGenresValueChanged(javax.swing.event.ListSelectionEvent evt) {
Object geselecteerdeObject = lstGenres.getSelectedValue();
Genre geselecteerdGenre = (Genre) geselecteerdeObject;
if (geselecteerdeObject != null) {
txtGenreNaam.setText(geselecteerdGenre.getGenreNaam());
System.out.println(geselecteerdGenre.getGenreNaam());
ophalenGenresLijst();
}
if (lstGenres.isSelectionEmpty()) {
btnVerwijderen.setEnabled(false);
btnWijzigen.setEnabled(false);
} else {
btnVerwijderen.setEnabled(true);
btnWijzigen.setEnabled(true);
}
}
我也試圖把這個在我的如果,但是它不會改變任何東西
if (lstPersonen.getSelectedIndices().length == 0) {
但是在這裏它的工作
Object geselecteerdeObject = lstFilms.getSelectedValue();
Film geselecteerdeFilm = (Film) geselecteerdeObject;
if (geselecteerdeObject != null) {
String filmIdAlsString = Integer.toString(geselecteerdeFilm.getFilmId());
txtFilmNaam.setText(geselecteerdeFilm.getFilmNaam());
txtFilmJaar.setText(geselecteerdeFilm.getFilmJaar() + "");
txtAantalMinuten.setText(geselecteerdeFilm.getAantalMinuten() + "");
txtIMDbScore.setText(geselecteerdeFilm.getIMDbScore() + "");
updateGenreLijst(geselecteerdeFilm.getFilmId());
updateActeurLijst(geselecteerdeFilm.getFilmId());
updateRegisseurLijst(geselecteerdeFilm.getFilmId());
}
if (lstFilms.isSelectionEmpty()) {
btnVerwijderen.setEnabled(false);
btnWijzigen.setEnabled(false);
} else {
btnVerwijderen.setEnabled(true);
btnWijzigen.setEnabled(true);
}
感謝你,確實是問題,這是不是錯了方法,但我把它叫做上 錯誤的地方。我不認爲這會影響它,但非常感謝。 –
太棒了!你的第二個小建議如果:boolean hasSelection =!lstGenres.isSelectionEmpty; btnVerwijderen.setEnabled(hasSelection); btnWijzigen.setEnabled(hasSelection);我發現它更具可讀性。 –