加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java 弹出消息框,并自动消失

(2012-08-23 23:28:48)
标签:

java

swing

awt

dialog

自动消失

it

分类: Java

package com.swing_test;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;
import javax.swing.Timer;

@SuppressWarnings("serial")
public class My_dialog extends JWindow implements ActionListener {
 
 private static int my_time = 50;

 private JLabel back = null;
 private JLabel txtTime = new JLabel();
 private JProgressBar progressBar = new JProgressBar(1, my_time);
 private Timer timer;
 private JPanel p2 = new JPanel();
 private int n = my_time;

 public My_dialog(String str) {

  Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  int screenWidth = screenSize.width;
  int screenHeight = screenSize.height;

  Dimension frameSize = this.getSize();
  int x = (screenWidth - frameSize.width) / 2;
  int y = (screenHeight - frameSize.height) / 2;

  back = new JLabel(str);

  progressBar.setString("will exit...");
  progressBar.setStringPainted(true);

  Container contentPane = getContentPane();
  contentPane.setLayout(null);
  contentPane.setSize(getMaximumSize());
  setSize((250 + (str.length() * 4)), 100);

  setLocation(x - ((250 + (str.length() * 4)) / 2), (y - 130 / 2));
  toFront();
  back.setBounds(10, 10, (250 + (str.length() * 4)) - 10, 50);
  p2.setBounds(10, 60, (250 + (str.length() * 4)) - 10, 80);
  setVisible(true);
  p2.add(txtTime);
  p2.add(progressBar);
  contentPane.add(back);
  contentPane.add(p2);
  timer = new javax.swing.Timer(100, this);
  timer.start();

  // System.out.println(str.length());
  // System.out.println(getSize());
  // System.out.println(contentPane.getSize());
  // System.out.println(p2.getSize());

 }

 public void actionPerformed(ActionEvent e) {
  if (--n > 0) {
   progressBar.setValue(my_time - n);
   txtTime.setText(Integer.toString(n));
   timer.restart();
  } else {
   timer.stop();
   this.dispose();
  }
 }

}

0

阅读 收藏 喜欢 打印举报/Report
后一篇:ubuntu ant
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有