2011-02-21 25 views

答えて

1

JProgressBar progressBar = new JProgressBar(); 
progressBar.setIndeterminate(true); 

これは、プログレスバーを作成します。中心に置くには、Javaのdifferent kinds of layout managersを見てください。 既存のコードの例がなくても、あなたの質問にもっと正確な答えを与えるのは難しいです。

1

アプリの画面の中央に表示ダイアログを表示します。

dialog.setLocationRelativeTo(...); 

不定プログレスバー。

あなたはJDialogの話をしている場合は、それを()パックを呼び出した後、それを中心にsetLocationRelativeTo(null)を呼び出すHow to Use Progress Bars

+0

+1ロットのベストアンサー。 –

2

にSwingのチュートリアルからのセクションをお読みください。

0

ここでは、通常、「ロード中...」の進行状況バーを表示しています。プログレスバーが更新され続けることを確認するには、読み込み自体がバックグラウンドスレッド上で行われなければなりません。プログレスバーのあるフレームが画面の中央に表示されます。

public static void main(String[] args) throws Throwable { 

    final JFrame frame = new JFrame("Loading..."); 
    final JProgressBar progressBar = new JProgressBar(); 
    progressBar.setIndeterminate(true); 
    final JPanel contentPane = new JPanel(); 
    contentPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 
    contentPane.setLayout(new BorderLayout()); 
    contentPane.add(new JLabel("Loading..."), BorderLayout.NORTH); 
    contentPane.add(progressBar, BorderLayout.CENTER); 
    frame.setContentPane(contentPane); 
    frame.pack(); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 


    Runnable runnable = new Runnable() { 
     public void run() { 
      // do loading stuff in here 
      // for now, simulate loading task with Thread.sleep(...) 
      try { 
       System.out.println("Doing loading in background step 1"); 
       Thread.sleep(1000); 
       System.out.println("Doing loading in background step 2"); 
       Thread.sleep(1000); 
       System.out.println("Doing loading in background step 3"); 
       Thread.sleep(1000); 
       System.out.println("Doing loading in background step 4"); 
       Thread.sleep(1000); 
       System.out.println("Doing loading in background step 5"); 
       Thread.sleep(1000); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
      // when loading is finished, make frame disappear 
      SwingUtilities.invokeLater(new Runnable() { 
       public void run() { 
        frame.setVisible(false); 
       } 
      }); 

     } 
    }; 
    new Thread(runnable).start(); 
} 
+0

ありがとうございます。あなたは本当に私を助けてくれました。しかし、フレームのリソースを隠した後に解放するために 'frame.dispose()'という行を1行追加します。 – Hobo

関連する問題