监听事件奇怪报错

jokdo 2011-07-18 06:27:57
layout.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class layout{
public JFrame createiframe (String str)
{
JFrame jf=new JFrame();
jf.setTitle(str);
jf.setBackground(Color.BLACK);
return jf;
}
public JButton createbutton(String str)
{
JButton jb=new JButton();
jb.setText(str);
return jb;
}
public JPanel createpanel()
{
JPanel jp=new JPanel();
return jp;
}
public JLabel createlabel(String str)
{
JLabel jl=new JLabel();
jl.setText(str);
return jl;
}
public JTextField textcreate(String str)
{
JTextField text=new JTextField();
text.setText(str);
return text;
}

}

boxgridelayout.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class boxgridelayout implements MouseListener{
public JTextField txt;
public JFrame frame;
public layout object;
public static void main(String args[])
{
boxgridelayout obstart=new boxgridelayout();
obstart.createmain();
}
public void createmain()
{
object=new layout();
frame=object.createiframe("这是测试页");
Container cnt=frame.getContentPane();
cnt.setLayout(null);

JButton button =object.createbutton("Click this");
cnt.add(button);
button.setBounds(10,10,200,30);
button.addMouseListener(this);
JTextField txt=object.textcreate("");
cnt.add(txt);
txt.setBounds(10,80,200, 30);

frame.setSize(800,600);
frame.setVisible(true);
}
public JTextField createinputtxt()
{
layout object=new layout();
txt=object.textcreate("");
return txt;
}
public void settxtvalue(String str)
{
txt.setText(str);
}
@Override
public void mouseClicked(MouseEvent arg0) {
txt.setText("鼠标点击");
System.out.println("点击");
}

@Override
public void mouseEntered(MouseEvent arg0) {
//settxtvalue("鼠标进入");
//txt.setText("鼠标进入");

}

@Override
public void mouseExited(MouseEvent arg0) {
//settxtvalue("鼠标离开");
//txt.setText("鼠标离开");

}

@Override
public void mousePressed(MouseEvent arg0) {
//settxtvalue("鼠标pressed");
//txt.setText("鼠标离开");

}

@Override
public void mouseReleased(MouseEvent arg0) {
//settxtvalue("鼠标松开");
//txt.setText("鼠标离开");

}
}
上面程序运行时,报下面错误,我是新手,请大侠拔刀相助,小弟感激不尽
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at boxgridelayout.mouseClicked(boxgridelayout.java:43)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6111)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:5873)
at java.awt.Container.processEvent(Container.java:2105)
at java.awt.Component.dispatchEventImpl(Component.java:4469)
at java.awt.Container.dispatchEventImpl(Container.java:2163)
at java.awt.Component.dispatchEvent(Component.java:4295)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4134)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
at java.awt.Container.dispatchEventImpl(Container.java:2149)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4295)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jokdo 2011-07-20
  • 打赏
  • 举报
回复
大侠,你太厉害了~~~~~~小弟感激不尽~~~~~~~~~~~~
古 林 2011-07-18
  • 打赏
  • 举报
回复
空指针 又是空指针, debug一下不就得了嘛 这个好找 ,你这个也好解决
zn85600301 2011-07-18
  • 打赏
  • 举报
回复
解决空指针的传统办法 DEBUG
Fly_m 2011-07-18
  • 打赏
  • 举报
回复
JTextField txt=object.textcreate("");
cnt.add(txt);
txt.setBounds(10,80,200, 30);

你这里定义了一个局部变量txt,并设置值,但外部的属性变量txt并没有定义,是空的,所以在点击事件方法里面会报错。

这里把
JTextField txt=object.textcreate("");
换成
txt=object.textcreate("");
即OK了。
安心逍遥 2011-07-18
  • 打赏
  • 举报
回复
java.lang.NullPointerException
at boxgridelayout.mouseClicked(boxgridelayout.java:43)
空指针异常,在四十三行,检查一下

50,549

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧