我有以下應用程序。它的工作原理,我只是想更好地理解它。
因此,從主類我做以下調用試圖瞭解GUI Swing和線程
public static void main(String[] args)
{
Gui gui = new Gui();
gui.startGui();
}
在上面的代碼的GUI類
public Gui()
{
initialize();
}
private void initialize()
{
mainWinFrm = new JFrame();
mainWinFrm.setTitle("Inventory Tool");
JMenuBar menuBar = new JMenuBar();
mainWinFrm.getContentPane().add(menuBar, BorderLayout.NORTH);
.....//allot more GUI staff getting initialize
}
public void startGui()
{
try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}
catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {}
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
Gui window = new Gui();
window.mainWinFrm.setLocationRelativeTo(null);
window.mainWinFrm.setMinimumSize(new Dimension(400, 200));
window.mainWinFrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.mainWinFrm.pack();
window.mainWinFrm.setVisible(true);
}
catch (Exception e)
{e.printStackTrace();}
}
});
}
結構由一個GUI建設者建立,我想我試圖理解發生了什麼。
,我不明白主要的一點是,當我們構造對象GUI在主類它初始化所有的變量,然後啓動該線程gui.startGui()該方法還創建了一個新的GUI對象窗口並初始化所有變量。
這似乎不適合我...但後來我不知道如果我失去了一些東西。
感謝您的意見/幫助 亞歷克西斯
看看[初始線程(http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html) – MadProgrammer
具有初始化方法和startGui方法沒有意義。 startGui方法是啓動Swing UI的正確方法 – MadProgrammer
看起來不正確 - 「Gui」對象被創建兩次:第一次在'main'中,第二次在'startGui'中。也許'startGui'應該被聲明爲'static'並且被稱爲'Gui.startGui()'。什麼工具建立這個代碼? – Joni