Java 文本字段的按钮操作侦听器不工作

Java 文本字段的按钮操作侦听器不工作,java,nullpointerexception,jtextfield,Java,Nullpointerexception,Jtextfield,我尝试制作这个GUI程序,它通过文本字段从用户处获取输入,并应返回大写转换: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class gui { JTextField textField; JFrame frame; JButton button; public static void main(String args[]) { gui tr = new gui();

我尝试制作这个GUI程序,它通过文本字段从用户处获取输入,并应返回大写转换:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class gui {
 JTextField textField;
 JFrame frame;
 JButton button;

public static void main(String args[]) {
    gui tr = new gui();
    tr.go();
}

public void go() {  
    JFrame frame = new JFrame();
    JTextField textField = new JTextField("Type here);
    JButton button = new JButton("Send");
    button.addActionListener(new buttonListener());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(BorderLayout.CENTER, textField);
    frame.getContentPane().add(BorderLayout.SOUTH, button);
    frame.setSize(300, 300);
    frame.setVisible(true);

}

class buttonListener implements ActionListener {
    public void actionPerformed(ActionEvent event) {
        String txt;
        txt = textField.getText();
        txt = txt.toUpperCase();
        textField.setText(txt);
    }
}
}
文件响应为空指针异常。我尝试添加异常处理程序,并根据我在网上看到的实例更改程序。请向我解释我的错误。
谢谢。

问题是您的类成员
JTextField textField
从未初始化,但您正试图在您的
操作中使用它

go()
方法中,您创建了一个与原始
textField
无关的新
JTextField

实际上,在
go()
中,您基本上创建了新对象

JFrame frame = new JFrame();
JTextField textField = new JTextField("Type here);
JButton button = new JButton("Send");

而不是初始化那些已经为类定义的变量。

您正在
go()
方法中创建另一个局部变量。更改此项:

JTextField textField = new JTextField(“Type here”);
致:


空指针异常在哪里?您正在跟踪变量。在将来,搜索这个问题,你会很容易地找到自己的解决方案。对NullPointerExceptions的搜索将向您显示解释如何查找null变量的副本,一旦您这样做,您将很快发现问题。哇,太快了。非常感谢你!多谢各位!
textField = new JTextField(“Type here”);