Как обрабатывать исключение AWT-EventQueue-0 java.lang.NullPointerException?

Я пытаюсь удалить данные из JTable, а также из текстового файла, но получил "AWT-EventQueue-0" java.lang.NullPointerException. Пожалуйста, помогите мне, вот мой код:

private void btndeleteActionPerformed(java.awt.event.ActionEvent evt2){
    deleteRow();            }


    private void deleteRow() 
      {
        dtm = (DefaultTableModel)myjtable.getModel();`EXCEPTION AT THIS LINE `
        int r=myjtable.getSelectedRow();

        String str=myjtable.getValueAt(r,0).toString();


        int row=dtm.getRowCount();     

        try  
        { 
            RandomAccessFile r1=new RandomAccessFile("C:\\Myfile.txt","rw");
            RandomAccessFile r2=new RandomAccessFile("C:\\TempFile.txt","rw");
            FileWriter myfile = new FileWriter("C:\\TempFile.txt",true);
            PrintWriter outStream = new PrintWriter(myfile);
            FileWriter myfile1 = new FileWriter("C:\\Myfile.txt",true);
            PrintWriter outStream1 = new PrintWriter(myfile1);

            r2.setLength(0);


            String regexp = "[|]+";
            for(int i=0;i<row;i++)
            {   
             String str1=r1.readLine().trim();
             String[] line = str1.split(regexp);
            if(line[0].compareTo(str)!=0)
            {
                outStream.print(str1);
                outStream.print("\r\n");

            }
            }
            outStream.close();

            r2.seek(0);
            r1.setLength(0);
            for(int i=0;i<row-1;i++)
            {   

             String str1=r2.readLine().trim();


            {
                outStream1.print(str1);
                outStream1.print("\r\n");

            }
            }
            r1.close();
            r2.close();
            outStream1.close();
            readFile();
        }
        catch (IOException e) {     
            System.out.println(e);     
        }



        }

person mayuresh    schedule 09.04.2014    source источник
comment
очевидно, что myjtable равно нулю. Пожалуйста, покажите, что это инициализация   -  person nikis    schedule 09.04.2014
comment
не могли бы вы сказать мне, какую строку я должен исправить. извините, я новичок в java. пожалуйста, помогите мне   -  person mayuresh    schedule 09.04.2014
comment
пожалуйста, покажите больше кода с участием myjtable   -  person nikis    schedule 09.04.2014


Ответы (1)


Я предполагаю, что вы скрываете переменную myjtable. Это означает, что вы определили его как переменную экземпляра в вашем классе и как локальную переменную где-то в вашем коде. Итак, у вас, вероятно, есть что-то вроде кода:

JTable myjtable;  // the instance variable
.
.
.
.
JTable myjtable = new JTable(...); // local variable

Вам не нужна локальная переменная, поэтому код должен быть:

myjTable = new JTable(...);
person camickr    schedule 09.04.2014