弹出一个会自动消失的提示框,并时刻在屏幕最前方显示

package com.goldgrid.util;

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 MessageDailog extends JWindow implements ActionListener {
 
 private static int my_time = 15;

 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 void messageDailog(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();
  }
 }
 
 public static void main(String[] args) {
	 String warningString="图片超过2兆,需要时间加载...";
	 MessageDailog messageDailog=new MessageDailog();
         //时刻在屏幕的最前面显示弹框
         messageDailog.setAlwaysOnTop(true);
	 messageDailog.messageDailog(warningString);
}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值