[英]Why isn't my GUI loaded on the constructor?
我有一個主類,有時會調用另一個類,其構造函數如下。
構造函數創建了GUI,我認為應該顯示它,但事實並非如此。 為什么會這樣呢?
public ModPackManager(){
System.out.println("New modpackmanager");
setUndecorated(true);
setBounds(100, 100, 350, 87);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
{
JLabel lblDownloadingModPack = new JLabel("Downloading and installing modpack, please wait...");
lblDownloadingModPack.setHorizontalAlignment(SwingConstants.CENTER);
lblDownloadingModPack.setBounds(10, 11, 330, 14);
contentPanel.add(lblDownloadingModPack);
}
progressBar = new JProgressBar();
progressBar.setBounds(10, 48, 330, 24);
contentPanel.add(progressBar);
label = new JLabel("0%");
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setBounds(10, 29, 330, 14);
contentPanel.add(label);
try {
installMods(getSelectedModPack());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
為什么會這樣呢?
嘗試setBounds(..)
,而不是使用布局(帶有填充和邊框)。
您從不顯示任何內容,只需對其進行設置。
雖然不是完全清楚您到底在做什么,或者您正在使用什么類(如果它是JFrame
:
pack();
setVisible(true);
您可能要在開發過程中setUndecorated(true)
–這可能使看不到/發現的事情。 為了避免窗口管理器調整大小,這可能是最小的:
setMinimumSize(new Dimension(350, 200));
我不確定標簽周圍的亂碼是干什么用的。
假設ModPackManager是JFrame,則應該可以使用以下命令使其可見:
setVisible(true);
只需在構造函數中的其他代碼之后調用它即可。 讓我們知道怎么回事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.