2013-07-18 2 views
0

я получаю "falseException" при выполнении следующего кода:неисправности Код falseException в потоке

import java.awt.EventQueue; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JLabel; 
import javax.swing.JTextField; 
import javax.swing.JButton; 
import javax.swing.SwingConstants; 


public class deneme implements ActionListener { 

    private JFrame frmAsalTesti; 
    private JTextField yazi; 
    Sayi s1 =new Sayi(); 
    String sondurum=""; 
    JLabel sonuc; 



    /** 
    * Launch the application. 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        deneme window = new deneme(); 
        window.frmAsalTesti.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    /** 
    * Create the application. 
    */ 
    public deneme() { 
     initialize(); 
    } 

    /** 
    * Initialize the contents of the frame. 
    */ 
    private void initialize() { 
     frmAsalTesti = new JFrame(); 
     frmAsalTesti.setTitle("Asal Testi"); 
     frmAsalTesti.setResizable(false); 
     frmAsalTesti.setBounds(100, 100, 307, 167); 
     frmAsalTesti.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel panel = new JPanel(); 
     frmAsalTesti.getContentPane().add(panel, BorderLayout.CENTER); 

     JLabel lblDenemekIstediinizSayy = new JLabel("denemek istedi\u011Finiz say\u0131y\u0131 girin!"); 
     panel.add(lblDenemekIstediinizSayy); 

     yazi = new JTextField(); 
     yazi.setText("0"); 
     panel.add(yazi); 
     yazi.setColumns(4); 

     JButton button = new JButton("Test Et"); 
     panel.add(button); 

     JLabel sonuc = new JLabel("Sonuç"); 
     panel.add(sonuc); 
     button.addActionListener(this); 



    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     int gelen=0; 
     gelen=Integer.parseInt(yazi.getText()); 
     System.out.println(s1.Asalmi(gelen)); 
     if(s1.Asalmi(gelen)) 
     { 
      sondurum="girilen sayı asaldır"; 
     } 
     else 
     { 
      sondurum="girilen sayı asal değildir"; 
     } 

      sonuc.setText(""+sondurum); 

    } 



} 

Ошибка, связанная с линией: sonuc.setText(""+sondurum);, является:

 falseException in thread "AWT-EventQueue-0" 
java.lang.NullPointerException 
    at deneme.actionPerformed(deneme.java:94) 

Я не мог» t найти решение, и я жду ваших ответов. Я просто хочу изменить ярлык, чтобы он был динамическим ярлыком.

+0

Рассмотрим добавление Java тег, если вы хотите ява людей, чтобы помочь – doctorlove

+0

Какая линия deneme.java: 94? любезно упомяните об этом в своем вопросе или прокомментируйте эту строку. Если возможно, поместите полную стекцию с помощью e.printStackTrace(); – rahulserver

ответ

3

Вы получаете NullPointerException на линии

sonuc.setText(""+sondurum); 

Что может быть нуль на этой линии и вызвать такое исключение? Ответ: sonuc.

Итак, есть sonuc где-то инициализирован?

Единственное место, где sonuc упоминается в коде в методе initialize():

JLabel sonuc = new JLabel("Sonuç"); 

И это создает локальную переменную с тем же именем, что и поле sonuc. Поэтому поле sonuc никогда не инициализируется.

Замените эту строку на

this.sonuc = new JLabel("Sonuç"); 
Смежные вопросы