日期:2014-05-20  浏览次数:20679 次

真心不知哪里出的问题!【JAVA GUI】
本来没什么,把书上的一个关于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");

------解决方案--------------------