「LoadingWindow」という比較的小さなクラスがあります。このクラスには、Initialize関数を呼び出してフレームをセットアップするコンストラクターがあります。なぜ更新されないのかを解決するために、いくつかのことをテストしていませんでした。テスト中に「this.removeAll();」を追加しました initializeメソッドの先頭に。結局、その後は何も追加できません。私が追加したものは、単に表示されません。
これは、クラスのわずかに縮小されたバージョンです。
public class LoadingWindow extends JFrame{
public JPanel panel;
public JProgressBar bar;
private JLabel label;
public LoadingWindow()
{
this.Initialize();
}
public void Initialize()
{
this.removeAll();
this.setSize(300, 150);
panel = new JPanel(new BorderLayout());
bar = new JProgressBar(0,100);
label = new JLabel("Please remain calm, we're just loading...");
panel.add(bar,BorderLayout.CENTER);
panel.add(label,BorderLayout.SOUTH);
this.add(panel);
this.validate();
this.repaint();
this.setVisible(true);
}
}
ウィンドウ自体は、タイトルとともに適切にポップアップします。ただし、ウィンドウ自体は完全に空白です。
このクラスを静的に実装して、他の4つのオブジェクトがEditorPanelクラスでアクセスできるようにします。その定義:
public static LoadingWindow loadingWindow;
コンストラクターで次のように初期化されます。
loadingWindow = new LoadingWindow();
次に、それを使用する関数内で、それが非表示になっているかどうかを表示するためのダブルチェックがあります。
if(!EditorPanel.loadingWindow.isVisible()){EditorPanel.loadingWindow.Initialize();}
全体的に、コンテンツが表示されない理由について少し混乱しています。質問があれば非常に興味があり、必要な情報を提供したいと思っています。グーグルは全部を提供しませんでした、そして私が見つけたすべての答えはすでに「塗り直しや検証など」を実装していました。
あなたからの便りを楽しみにしています!
〜トラビス