Изключение nullPointerException възниква при актуализиране на JComboBox

Искам да актуализирам jcombobox. Така че първо премахнах всички елементи и след това ще изпълня заявката. Извиквам този метод в конструктор и той работи добре. Също така извиквам този метод в бутон и когато този btn е натиснат, той ми дава изключение за nullpointer. елементите от комбинираната кутия също бяха премахнати. Така че проблемът е в ред 5. Как да поправя това??

private void loadDataToCombo(String query,JComboBox combo) {  
      ResultSet result1= null;
    //removing existing items before adding
     combo.removeAllItems();
     result1 = DBOptions.executeSQLQuery(query); //line 5   

    try {
        while(result1.next()){
            String data = result1.getString(1);
            combo.addItem(data);
        }

    } catch (SQLException ex) {
        Logger.getLogger(AddCustomer.class.getName()).log(Level.SEVERE, null, ex);
    }
}

person chathura    schedule 03.09.2012    source източник
comment
Изглежда, че вашата комбинация JComboBox е нулева.   -  person kosa    schedule 03.09.2012
comment
Използвайте дебъгер, за да разберете коя променлива е нула. Ще бъде по-ефективно, отколкото да ни помолите да открием грешката.   -  person    schedule 03.09.2012
comment
Предавам го като аргумент и след това премахвам всички елементи и след това отново добавям елементи към него, тъй като го предавам, той не може да бъде нула.   -  person chathura    schedule 03.09.2012
comment
Проверих това изявление с помощта на метода за печат DBOptions.executeSQLQuery(query), тъй като казах, че този ред е изпълнен два пъти. За първи път дава нещо на JDBC. втори път не показва нищо   -  person chathura    schedule 03.09.2012
comment
DBOptions.executeSQLQuery(query); вероятно връща нула, така че result1.next() хвърля NPE.   -  person Roddy of the Frozen Peas    schedule 03.09.2012
comment
каква е причината за това?? Използвам същата заявка, която беше използвана в конструктора. Първо работи.   -  person chathura    schedule 03.09.2012
comment
Направихте ли очевидния тест, за да видите дали DBOptions е null, преди да го използвате? Не предполагайте нищо, докато не го докажете.   -  person Hovercraft Full Of Eels    schedule 03.09.2012
comment
executeSQLQuery е статичен метод, дефиниран в класа DBOptions   -  person chathura    schedule 03.09.2012
comment
Можете ли да публикувате кода за executeSQLQuery? А проследяването на стека за NPE?   -  person Roddy of the Frozen Peas    schedule 03.09.2012


Отговори (3)


Ако е при щракване на бутона, моля, вижте дали инициализирахте ли бутона..?

JButton butt = new JButton();
person Kumar Vivek Mitra    schedule 03.09.2012
comment
Извиквам този метод в метода ActionPerformed - person chathura; 03.09.2012
comment
Да, разбира се.... но регистрирахте ли този ActionListener, чийто actionPerformed() е метод с JButton....., ако сте го направили,, моля, проверете дали сте инициализирали бутона, преди да го направите. .... - person Kumar Vivek Mitra; 03.09.2012
comment
Използвам netbeans, така че когато изпълнявам това, трябва да се инициализира. нали?? - person chathura; 03.09.2012
comment
Не.... дори ако използвате Eclipse, JDeveloper и т.н., и т.н.... Това е you who need to Initialize it..... - person Kumar Vivek Mitra; 03.09.2012
comment
@Kumar: Въз основа на посочения ред в кода на оригиналната публикация, не мисля, че това е проблемът. - person Hovercraft Full Of Eels; 03.09.2012
comment
@HovercraftFullOfEels Also I'm calling this method in a button, and when that btn is pressed it gives me a nullpointerexception, този ред от OP привлече вниманието ми - person Kumar Vivek Mitra; 03.09.2012
comment
почти съм сигурен, че ред 4 се изпълнява, тъй като всички елементи бяха премахнати. - person chathura; 03.09.2012
comment
@Kumar: това е кодът вътре в ActionListener на JButton, който причинява NPE. Отново има голяма вероятност отговорът ви да е неправилен. - person Hovercraft Full Of Eels; 03.09.2012
comment
@HovercraftFullOfEels, OP не е дал своя log cat....сега може да има друга причина, поради която връзката му с DB е неуспешна.... мога да взема само няколко предположения...докато той даде Logcat - person Kumar Vivek Mitra; 03.09.2012

Имах същия проблем. Мисля, че това е така, защото имате actionlistner за елементите. това, което направих, е да премахна actionlistener на елементите.

person rebekah    schedule 14.03.2014

Имах същия проблем, моето решение беше да заменя комбо събитието action, извършено от събитието mouseclicked. По този начин той не улавя елемента и не ви пречи да ги добавите до addItem().

person GartY    schedule 28.07.2017