java - java代码中的NullPointer错误

标签 java nullpointerexception

我正在尝试运行一个java类fwd_TLit,它扩展了类layout_ETP,这是我的项目布局。它是使用 gridBag 布局构建的。现在,当我尝试运行 fwd_TLit 时,我面临 NullPointerException。请有人帮助我,会出现什么错误,但没有输出。 layout_ETP 的代码:-

public class layout_ETP {

            static Font f=new Font("Papyrus",Font.BOLD ,50);
    static Font f1=new Font("Papyrus",Font.BOLD ,30);

        public static JLabel l,l1,l2;
        public static JButton clearBtn,convertBtn,obj;
        public static JTextArea  ta,ta1;
        public static JPanel footer;


    public static void main(String[] args) {


        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame();
            frame.setSize(600, 600);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setFont(f);
        frame.setTitle("Natural Language Processor");

        frame.setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();

            // Setting the label for the nlp            
            l = new JLabel("Natural Language Processor");
            l.setFont(f);
            c.weightx = 0.0;
            c.gridx = 0;
            c.gridy = 0;
            c.ipady = 20;
            c.fill = GridBagConstraints.NONE;
            c.anchor = GridBagConstraints.FIRST_LINE_START;
            frame.add(l, c);

            l1 = new JLabel("English");
            l1.setFont(f1);
            c.gridy = 1;
            c.weighty = 0.0;
            frame.add(l1, c);
        }

fwd_TLit 的代码:-

public class fwd_TLit extends layout_ETP {

    public void transliteration() {
        ta.setText("Hello");
        String str = ta.getText().toString();
        ta1.setText(str);
    }

    public static void main(String[] args) {
        try{
            fwd_TLit obj = new fwd_TLit();
            obj.transliteration();
        } catch(Exception e) {
            System.out.println(e);
        }
    }
    }

对那些人感到抱歉,但我正在尝试放置该类中最小的代码..!!我拥有所有必要的东西,例如字体、声明等...但在 fwd_TLit 类中面临这个问题。我认为问题一定在那里..!!

最佳答案

这部分是对您评论的回应。

正如我在评论中指出的,您有两个主要方法。尽管您尚未发布堆栈跟踪,但我可以看到唯一会导致 NullPointerException 的地方是 fwd_TLit 类的 main 方法,我认为该方法实际上正在运行。

fwd_TLit中,您尝试使用其父类中尚未实例化的字段。这是我所指的内容:

public void transliteration() {
    ta.setText("Hello"); // RIGHT HERE
    String str = ta.getText().toString();
    ta1.setText(str); // AND TECHNICALLY HERE AGAIN
}

虽然这些变量确实在父类的 main 方法中实例化,但该 main 方法不会自动调用。我的建议是创建某种静态初始化方法,在其中创建所有这些对象(我相信这将是layout_ETP 类的 main 方法中的大部分或全部代码)。您可以调用音译之前调用该静态初始化方法,或者需要使用这些字段的任何其他方法。

旁注:

由于您正在实例化一个新的 fwt_TLit 对象,因此这些变量(例如 tata1 等)不需要保持静态。

正如 Boris the Spider 和 Scorpion 所指出的那样,请遵循 Java 命名约定样式(可以在 Scorpion 提供的链接中找到)。看看你的代码,我一眼就完全不知道 fwt_TLittata1 (...等)是什么或做,我也无法确定什么是类(应以大写字母开头),什么是变量(应以小写字母开头)。在软件开发中,可读性对于代码的可维护性至关重要(并且不会激怒您的同事)。

关于java - java代码中的NullPointer错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21610449/

相关文章:

java - 在java中将iso8601日期转换为unix时间戳

java - json volley 显示错误 android

java - 为什么会抛出 NullPointerException?

java - 即使给出了正确的引用,在 TextView 上获取空对象引用

java - 什么是NullPointerException,我该如何解决?

java - java客户端中的NullPointer异常?

java - 如果一个线程打开一个套接字并且主程序退出会发生什么?

java - Jenkins CI - 干净的 wsdl2java 代码

java - 将空对象转换为整数

java - Cpanel Java电子邮件客户端程序