簡體   English   中英

關於Java SWING和Swing應用程序框架的一些疑問

[英]Some doubts about Java SWING and Swing Application Framework

我有這個簡單的Main類,它使用swing來顯示Hello World標簽但是我對這段代碼有一些疑問,因為這是我第一次用Java創建GUI:

import javax.swing.JLabel;

import org.jdesktop.application.SingleFrameApplication;

public class Main extends SingleFrameApplication {

    @Override
    protected void startup() {
        // TODO Auto-generated method stub
        show(new JLabel("Hello World"));
    }

    public static void main(String[] args) {
        Main a = new Main();
        a.startup();
    }

}

我的懷疑是:

  1. 根據我的理解, JLabel()方法是一個純粹的Swing方法,只需創建一個顯示Hello World消息的文本標簽。 這段代碼也使用了startup()方法,根據我的理解,這是一個屬於所謂的Swing應用程序框架 的** SingleFrameApplication的方法 ......但是......這個Swing應用程序框架究竟是什么? 它是一個與Swing分開的項目嗎? 什么給我?

  2. 當我將應用程序作為經典Java應用程序運行時,Hello World消息顯示,但在Eclipse控制台中也出現以下錯誤消息:

org.jdesktop.application.ResourceManager getApplicationResourceMap Avvertenza:getApplicationResourceMap():no Application class set 23,2013 12:35:38 PM org.jdesktop.application.SingleFrameApplication initRootPaneContainer Avvertenza:不能org.jdesktop.application.LocalStorage.getApplicationId(LocalStorage.java:254)中的org.jdesktop.application.LocalStorage.getDirectory(LocalStorage.java:274)中的ord還原會話[mainFrame.session.xml] java.lang.NullPointerException .jdesktop.application.LocalStorage $ LocalFileIO.getFile(LocalStorage.java:450)org.jdesktop.application.LocalStorage $ LocalFileIO.openInputFile(LocalStorage.java:417)at org.jdesktop.application.LocalStorage.openInputFile(LocalStorage.java) :68)org.jdesktop.application.LocalStorage.load(LocalStorage.java:188)org.jdesktop.application.SessionStorage.restore(SessionStorage.java:381)org.jdesktop.application.SingleFrameApplication.initRootPaneContainer(SingleFrameApplication。 Java的:210) 在Main.main的Main.startup(Main.java:11)​​的org.jdesktop.application.SingleFrameApplication.show(SingleFrameApplication.java:268)(Main.java:19)

為什么? 它究竟意味着什么?

TNX

安德里亞

要創建並顯示帶有Hello World標簽的窗口,您至少需要執行以下操作:

  • 實例化JFrame( 鏈接 )。
  • 將JLabel添加到它。
  • 顯示框架。

關於如何制作框架( 鏈接 )的oracle教程向您展示了如何做到這一點。 為了便於參考,我從那里復制了定義/顯示窗口的特定摘錄。

JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel emptyLabel = new JLabel("");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

//Display the window.
frame.pack();
frame.setVisible(true);

您正在擴展SingleFrameApplication ,它是一個為您執行UI設置和初始化的框架類,但您沒有提供任何必要的配置信息。

暫無
暫無

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

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