2013-06-30 54 views
0

我即將開始開發一些Java應用程序,以便我可以太熟悉該語言,因爲我的第一個真正的項目我想創建一個應用程序,當它加載完成後給出兩個不同的面板,更改日誌(從Tumblr檢索的get)和另一個不是很寬的包含登錄表單或按鈕以啓動應用程序的另一個面板,一旦用戶啓動到應用程序,它將關閉啓動器,然後打開主要應用程序的JFrame,例如遊戲。開發一個Java應用程序啓動器

我曾試圖讓我的JFrame和這樣的工作,但沒有太多的成功。什麼是使這種情況發生的最佳方式?

目前代碼

import java.awt.BorderLayout; 
import java.awt.Canvas; 
import java.awt.Dimension; 

import javax.swing.BoxLayout; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class Launcher extends Canvas { 
private static final long serialVersionUID = 1L; 
public static final int LAUNCHER_WIDTH = 350; 
public static final int LAUNCHER_HEIGHT = 200; 
public static final int LAUNCHER_SCALE = 3; 
public static final String LAUNCHER_TITLE = "Launcher"; 

public static void main(String[] args) { 
    Launcher l = new Launcher(); 

    JFrame f = new JFrame(); 

    JPanel c = new JPanel(); 
    JPanel u = new JPanel(); 
    JPanel s = new JPanel();  

    l.setPreferredSize(new Dimension(LAUNCHER_WIDTH * LAUNCHER_SCALE, LAUNCHER_HEIGHT * LAUNCHER_SCALE)); 
    l.setMinimumSize(new Dimension(LAUNCHER_WIDTH * LAUNCHER_SCALE, LAUNCHER_HEIGHT * LAUNCHER_SCALE)); 
    l.setMaximumSize(new Dimension(LAUNCHER_WIDTH * LAUNCHER_SCALE, LAUNCHER_HEIGHT * LAUNCHER_SCALE)); 

    c.setLayout(new BoxLayout(c, BoxLayout.X_AXIS)); 
    c.add(u); 
    c.add(s); 

    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    f.setLayout(new BorderLayout()); 
    f.setTitle(LAUNCHER_TITLE); 
    f.add(l, BorderLayout.CENTER); 
    f.add(c); 
    f.pack(); 
    f.setResizable(false); 
    f.setLocationRelativeTo(null); 
    f.setVisible(true); 
} 
} 
+0

會發生什麼你願意改善/改變嗎? –

+0

我的JFrame出現了,但尺寸沒有註冊,因爲它是屏幕中心的一個小盒子,基本上從這裏我也想在第一段中爲所有內容構建一個工作!:) –

回答

3

一對夫婦的建議:

  • 爲了您Launcher()不延伸Canvas因爲這是java.awt
  • 使用JPanelJFrame,而不是因爲這些swing這將是與其他Swing組件更兼容
  • 一般不要混用Swing和AWT組件,當你運行這個,什麼unecessarily
+0

哦,謝謝你爲此我會記住!:) –

相關問題