如果自动关闭弹出窗口 本帖最后由 tcmis 于 2012-04-10 10:16:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果这些弹出窗口是一样的,也就是同一个类的不同对象,那么用一个ArrayList把所有打开的窗口的引用保存起来,想要知道打开了多少窗口就获取ArrayList的容量,一次性关掉就用一个循环调用所有窗口的关闭方法如果这些弹出窗口不是同一个类的对象,那么定义一个父类或一个接口,在父类或接口里面定义关闭窗口的方法,由子类重写这个方法,用一个父类或接口类型为变量的容器:ArrayList<父类>或ArrayList<接口>,保存所有弹出窗口的引用,获取程序打开多少窗口和关闭所有窗口方法同上 参考下下面的代码吧public class TestJframe extends JFrame { private List frames; private static int count = 0; @SuppressWarnings("unchecked") public TestJframe() throws HeadlessException { super(); setTitle("自动弹出自动关闭测试"); setSize(400, 500); setVisible(true); frames = new ArrayList(); addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { System.exit(1); } }); final Thread start = new Thread() { @Override public void run() { JFrame temp = null; try { while (!isInterrupted()) { frames.add(temp = new JFrame("JFrame" + (++count))); temp.setBounds(count * 20, 30, 200, 300); temp.setVisible(true); TimeUnit.SECONDS.sleep(2); } } catch (InterruptedException e) { System.out.println("线程异常终止"); } } }; start.start(); new Thread() { @Override public void run() { try { TimeUnit.SECONDS.sleep(20); start.interrupt(); start.join(); for (Object item : frames) { ((JFrame) item).dispose(); } } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); } public static void main(String[] args) { new TestJframe(); }} Spring和struts2集成问题 谁能告诉我java读取记事本的格式如何的 求教JAVA进度条问题 JTable的刷新问题 请教一个JACOB的问题!! 急死人 小弟在线等 100分送上 不够在加 请教if(conf ==true) {} 与if(true == conf){} 的区别和具体用法! 请问对JList来说,有鼠标双击事件么? JavaWebStudio的问题 怎样用JAVA绘制坐标系 请问怎么用BufferedOutputStream中的write方法往XML文件中写入UTF-8编码字符串?(编码问题) java se 连接apache 如何在数据库赋予权限
private List frames;
private static int count = 0; @SuppressWarnings("unchecked")
public TestJframe() throws HeadlessException {
super();
setTitle("自动弹出自动关闭测试");
setSize(400, 500);
setVisible(true);
frames = new ArrayList();
addWindowListener(new WindowAdapter() { @Override
public void windowClosed(WindowEvent e) {
System.exit(1);
} });
final Thread start = new Thread() {
@Override
public void run() {
JFrame temp = null;
try {
while (!isInterrupted()) {
frames.add(temp = new JFrame("JFrame" + (++count)));
temp.setBounds(count * 20, 30, 200, 300);
temp.setVisible(true);
TimeUnit.SECONDS.sleep(2);
}
} catch (InterruptedException e) {
System.out.println("线程异常终止");
}
} };
start.start();
new Thread() { @Override
public void run() {
try {
TimeUnit.SECONDS.sleep(20);
start.interrupt();
start.join();
for (Object item : frames) {
((JFrame) item).dispose();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
} }.start();
} public static void main(String[] args) {
new TestJframe();
}
}