本来没什么,把书上的一个关于java GUI的最简单的例程打了一遍,监听器实现按下按钮后按钮上的字改变。
代码和书上一样一样的,但运行点击按钮时按钮文字无变化,而且提示:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at SimpleGUI.actionPerformed(SimpleGUI.java:36)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
--------------------【无语了……下面将源码贴出来】-------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SimpleGUI implements ActionListener{
JButton button;
public static void main (String[] args){
SimpleGUI gui=new SimpleGUI();
gui.go();
}
public void go(){
JFrame frame=new JFrame();
JButton button =new JButton("click me");
button.addActionListener(this);
frame.getContentPane().add(BorderLayout.SOUTH,button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event){
button.setText("Yes!");
}
}
到底哪里的问题?求解答!!!
------解决方案--------------------
java.lang.NullPointerException
空指针,看一下,具体的不清楚
祝你好运
------解决方案--------------------
哈哈,书上代码错了。
JButton button =new JButton("click me");
改成
this.button =new JButton("click me");
------解决方案--------------------
go()方法中的
JButton button =new JButton("click me");
改成
button =new JButton("click me");
------解决方案--------------------