最近做个小项目,需要用到一个信息面板显示,信息轮换,一段时间后自动销毁这个面板。采用了JDialog显示
销毁的时候尝试了线程,dispose等方法均没有实现,还有说将JDialog的引用设置成null更不可能准备实现这种效果,jvm的垃圾回收机制。
后来才了解使用timer类能很好解决:
package com.liu.test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* @author liu
*5秒后自动关闭JDialog测试
*/
@SuppressWarnings("serial")
public class DialogTest extends JFrame implements ActionListener {
JButton btnTest = new JButton("打开一个JDialog");
public DialogTest() {
setTitle("Test");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(btnTest, BorderLayout.NORTH);
btnTest.addActionListener(this);
}
public static void main(String... args) {//主函数
new DialogTest().setVisible(true);
}
public void actionPerformed(ActionEvent e) {
new AutoDialog(this).setVisible(true);//显示以恶搞Jdialog
}