1. 程式人生 > >Java報錯異常-----Exception in thread "main" java.lang.NullPointerException

Java報錯異常-----Exception in thread "main" java.lang.NullPointerException

異常提示:

Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1045)
at java.awt.Container.add(Container.java:365)
at com.Textarea.JT_area.<init>(JT_area.java:23)
at com.Textarea.JT_area.main(JT_area.java:58)

為什麼會報這個異常???

原因找到了:

jp.add(jtf);
jp.add(jb);

jtf=new JTextField(20);

是因為這三個的順序不當引起,因為,jtf還沒有被初始化的情況下,被:  jp.add(jtf); 這樣使用,肯定是不行的,這是的物件為空。所以會報空指標異常。

空指標,引用沒有初始化就使用了。

總結:通常報:Exception in thread "main" java.lang.NullPointerException 即:空指標異常,

通常是,由於,物件沒有被初始化就使用造成的。

物件,必須初始化即例項化之後,才能使用!

都有哪些情況下會報異常???

異常的種類 ?以及各種異常的處理方法啊??

package com.Textarea;
import javax.swing.*;
import java.awt.*;
import java.io.*;


public class JT_area extends JFrame 
{
JScrollPane jsp=null;
JTextArea   jta=null;
JTextField   jtf=null;

JButton jb=null;
JPanel   jp=null;



public JT_area()
{
// 定義按鈕
jb=new JButton("傳送");
jp=new JPanel();
 
jp.add(jtf);
jp.add(jb);
 

// 定義三個元件
jta=new JTextArea();
jtf=new JTextField();



jsp=new JScrollPane(jta);

this.add(jsp,"Center");
this.add(jp,"South");

// 設定框架

this.setLocation(300, 300);
this.setSize(300,400);

this.setTitle("聊天對話方塊");
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.setVisible(true);








}

public static void main(String[] args)
{
JT_area jtar=new JT_area();


}

}