簡體   English   中英

Java Swing中的JButton錯誤

[英]JButton Error in Java Swing

我正在使用AppDev(應用程序開發),並且使用帶有測試按鈕且名稱為“ Button”的JFrame創建了一個JButton,在下面出現此錯誤:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at apptutorial.AppDev.initApp(AppDev.java:18)
at apptutorial.AppDev.<init>(AppDev.java:10)
at apptutorial.AppDev$1.run(AppDev.java:30)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:738)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:699)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:708)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

我的文件“ AppDev.java”的代碼是:

package apptutorial;
import java.awt.*;
import javax.swing.*;

public class AppDev extends JFrame {

    public AppDev() {
        initApp();
    }
    /*
    This Generated App Code generates a app which has running now.
    */

    // <editor-fold defaultstate="collapsed" desc="Generated App Code">
    private void initApp() {
        frame.setTitle("Alpha Application");
        frame.setLayout(new FlowLayout());
        frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frame.add(new JButton("Button"));
        frame.setSize(400,350);
        frame.setVisible(true);
    }
    // </editor-fold>

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                new AppDev().setVisible(true);
            }
        });
    }
    private JFrame frame;
}

有人可以解決我的問題嗎?

您尚未初始化可變框架

 private void initApp() {
   frame=new JFrame();//you missed this
    frame.setTitle("Alpha Application");
    frame.setLayout(new FlowLayout());
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.add(new JButton("Button"));
    frame.setSize(400,350);
    frame.setVisible(true);
}

IDK為什么您要在框架內創建框架

但是沒有必要這樣做,因為您已經通過以下方式擴展了JFrame:

public class AppDev extends JFrame

你可以簡單地喜歡

 private void initApp() {

    setTitle("Alpha Application");
    setLayout(new FlowLayout());
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    add(new JButton("Button"));
    setSize(400,350);
    setVisible(true);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM