java 两秒后消失_创建一个简单的消息框,在Java中几秒后消失

我想知道在显示设定的秒数后,使JOptionPane样式普通消息框消失的最佳方法是什么.

我想从主GUI线程启动一个单独的线程(使用一个计时器)来执行此操作,以便主GUI可以继续处理其他事件等.但是我如何在这个单独的线程中实际创建消息框消失并正确终止线程.谢谢.

编辑:所以这是我按照下面发布的解决方案提出的

package util;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.SwingConstants;

import javax.swing.Timer;

public class DisappearingMessage implements ActionListener

{

private final int ONE_SECOND = 1000;

private Timer timer;

private JFrame frame;

private JLabel msgLabel;

public DisappearingMessage (String str, int seconds)

{

frame = new JFrame ("Test Message");

msgLabel = new JLabel (str, SwingConstants.CENTER);

msgLabel.setPreferredSize(new Dimension(600, 400));

timer = new Timer (this.ONE_SECOND * seconds, this);

// only need to fire up once to make the message box disappear

timer.setRepeats(false);

}

/**

* Start the timer

*/

public void start ()

{

// make the message box appear and start the timer

frame.getContentPane().add(msgLabel, BorderLayout.CENTER);

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

timer.start();

}

/**

* Handling the event fired by the timer

*/

public void actionPerformed (ActionEvent event)

{

// stop the timer and kill the message box

timer.stop();

frame.dispose();

}

public static void main (String[] args)

{

DisappearingMessage dm = new DisappearingMessage("Test", 5);

dm.start();

}

}

现在的问题是,当我在用户和主GUI之间的交互过程中创建这个类的多个实例时,我想知道dispose()方法是否每次都能正确清理所有内容.否则,我最终可能会在内存中累积大量冗余对象.谢谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值