・ このブログの記事(テキスト・画像)について

2011年12月9日金曜日

【swing】Eclipse3.7の「WindowBuilder 」でSwingでレッツアプリ開発!! その4

前回の続き
プログレスバーを使用してみる。

1.追加ソース
 /**
  * Initialize the contents of the frame.
  */
 private void initialize() {
  frame = new JFrame();
  frame.setBounds(100, 100, 450, 300);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.getContentPane().setLayout(new BorderLayout(0, 0));
  JButton btnNewButton = new JButton("開始");
  frame.getContentPane().add(btnNewButton, BorderLayout.SOUTH);


  progressBar = new JProgressBar(0 , 100);

  frame.getContentPane().add(progressBar, BorderLayout.NORTH);
  btnNewButton.addActionListener(this);
  timer = new Timer(100 , this);
  timer.start();


 }

 /**
  * 汎用String格納用メンバ変数
  * メモリ効率を考えてStringBuilderを使用する。
  * */
 StringBuilder mStringBuilder = new StringBuilder();
 /* (非 Javadoc)
  * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
  */
 public void actionPerformed(ActionEvent e) {
  if(mStringBuilder !=null){
   mStringBuilder.delete(0, mStringBuilder.length());
  }
  mStringBuilder.append(e.getActionCommand());
  //開始のボタンイベントかどうか
  if(mStringBuilder.toString().equals("開始")){
   //警告ダイアログを表示する。
      JLabel label = new JLabel("Message");
      label.setForeground(Color.RED);
      JOptionPane.showMessageDialog(frame, label);



  }else{
   //ActionEventがクリックボタンではない場合,プログレスバーの値変更処理開始
   int value = progressBar.getValue();
   if (value == 100) {
    timer.stop();
    return;
   }else{
    progressBar.setValue(value + 1);
   }
  }
 } 
 
 2.プログレスバーが表示された。
プログレスダイアログが表示された。
 

3.プロジェクトについて
ここのサイトに格納しております。何かのお役に立てたら幸いです。


 

0 件のコメント:

コメントを投稿