2012-08-10 71 views
0

即时消息具有空指针错误。我试图通过System.out.print打印按钮,它的工作原理。我真的不知道什么是错的。这是我的第一篇文章,所以很抱歉有任何错误。下面的代码:通过按钮改变文本字段中的文本

import javax.swing.JFrame; 
import javax.swing.JButton; 
import javax.swing.JTextField; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 
import java.awt.FlowLayout; 
import java.awt.Container; 

class ChangeText implements ActionListener{ 
    JButton button; 
    JTextField tfield; 
    public ChangeText(){ 
     JFrame frame = new JFrame(); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setTitle("Change Text"); 
     frame.setLayout(new FlowLayout()); 


     JTextField tfield = new JTextField("old text"); 
     JButton button = new JButton("Change Text"); 
     button.addActionListener(this); 

     frame.add(tfield); 
     frame.add(button); 

     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args){ 
     ChangeText ct = new ChangeText(); 
    } 


    public void actionPerformed(ActionEvent e){ 
     tfield.setText(null); 
    } 


} 

编辑:这是我所得到的,当我按下

java.lang.NullPointerException 
    at ChangeText.actionPerformed(ChangeText.java:42) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.awt.EventQueue$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.awt.EventQueue$4.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
+0

你的空指针在哪里?显示堆栈跟踪 – 2012-08-10 13:57:33

+0

我编辑了帖子。谢谢。我还不熟悉堆栈跟踪,因此我不确定这是否是您要求的。抱歉。 – devanon 2012-08-10 14:21:31

回答

0

此行是创建JTextField的本地副本按钮

JTextField tfield = new JTextField("old text"); 

让它

tfield = new JTextField("old text"); 

(这样你的tfield成员实例化),并且一切都应该很好:)

+0

ohhhh。傻我。非常感谢。 – devanon 2012-08-11 03:09:31