2010-03-28 27 views
0

很抱歉,如果這個問題會發出聲音太亂,隨意編輯。使得Java SingleFrameApplication出現第二

我有一個完全由netbeans構成的應用程序,它使用SingleFrameApplication並自動生成名爲「MyApp」的GUI代碼和名爲「MyView」的FrameView。現在,MyApp以某種方式具有main()函數,但MyView具有所有圖形元素。

我不完全理解這是怎麼發生的,所以用它作爲黑盒子(它以某種方式創建窗口,我不必在意爲什麼)。但是現在,我需要窗口只是一個窗口,由另一個JFrame打開。我不知道,如何做到這一點。

MyApp的,這是延長SingleFrameApplication,有以下方法:

public class MyApp extends SingleFrameApplication { 

    @Override protected void startup() { 
     show(new MyView(this)); 
    } 

    @Override protected void configureWindow(java.awt.Window root) { 
    } 

    public static MyApp getApplication() { 
     return Application.getInstance(MyApp.class); 
    } 

    public static void main(String[] args) { 
     launch(MyApp.class, args); 

    } 
} 

MyView的有以下方法:

public class MyView extends FrameView { 

    public MyView(SingleFrameApplication app) { 
     super(app); 
     initComponents(); 
    } 
    private void initComponents() { 
     //all the GUI stuff is somehow defined here 
    } 
} 

現在,我不知道這兩個類是如何工作的,我只是想這窗口,在MyView的定義,之後另一個窗口,「普通」的JFrame出現。我怎樣才能調用這個MyApp/MyView?

回答

1

但現在,我需要窗口只是一個窗口,由另一個JFrame打開。我不知道,如何做到這一點。

1)它不只是一個窗口 - 它是一個 的Swing應用程序框架(嗯, 危險GUI構建器的...);和 -

2)您還沒有指定你想怎麼 它「另一個JFrame中打開」;

,但這樣的事情,如果你通過一個JButton啓動它應該工作 -

JButton launchMyApp = new JButton("launch"); 
launchMyApp.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent evt) { 
     String[] args = {}; 
     Application.launch(MyApp.class, args); 
    } 
}); 
+0

感謝...我真的不明白之間的應用程序,窗口邊框,frameview和諸如此類的區別。而且我不喜歡GUI構建器中的框架我明白了 - 但是,AWT/Java是完全一致的。 – 2010-03-28 17:34:26

+0

右鍵 - 我剛提過的部分「的GUI建設者危險」的問候Netbeans的。 – Nate 2010-03-28 18:49:53

相關問題