读书人

关闭窗体有关问题

发布时间: 2012-03-03 15:33:03 作者: rapoo

关闭窗体问题?

import java.awt.Toolkit;

import java.awt.TrayIcon;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;


import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.WindowConstants;

import java.sql.*;

import java.io.*;
import net.sourceforge.jtds.jdbc.Driver;

import java.util.Timer;

import java.util.TimerTask;
import java.util.*;
import java.awt.*;
import javax.swing.*;


public class TrayIconAdvanced extends JFrame {

private TrayIcon ti;


public static void main(String[] args) {

AnnoyingBeep aaa=new AnnoyingBeep();
aaa.AnnoyingBeep();


}
public TrayIconAdvanced() {

setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

if (SystemTray.isSupported()) {

setVisible(false);

minimizeToTray();

} else {

System.exit(0);

}

}

});

JPanel root = new JPanel();


//JLabel label=new JLabel( "您有新消息,请查收! ");
JButton exitButton = new JButton( "您有新消息,请查收! ");






exitButton.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {



try {
Process p = Runtime.getRuntime().exec(
"cmd.exe /c start http://www.sina.com.cn ");
p.waitFor();
}
catch (Exception ae) {
System.out.println(ae.getMessage());
}

SystemTray tray = SystemTray.getSystemTray();

try {

tray.add(ti);

} catch (AWTException ce) {

System.err.println(ce);

}


//System.exit(0); //退出系统托盘


}

}
);

root.add(exitButton);

getContentPane().add(root);

pack();


initTi();

}


private void initTi() {

Image image = Toolkit.getDefaultToolkit().getImage(

this.getClass().getResource( "TrayIcon.png "));
//this.getClass().getResource( "1.gif "));

PopupMenu popupTi = new PopupMenu();

MenuItem showItem = new MenuItem( "Show ");

ActionListener showListener = new ActionListener() {

public void actionPerformed(ActionEvent e) {

setVisible(true);

SystemTray.getSystemTray().remove(ti);

}

};

showItem.addActionListener(showListener);



popupTi.add(showItem);

ti = new TrayIcon(image, "TrayIcon ", popupTi);

ti.addActionListener(showListener);

}


public void minimizeToTray() {

SystemTray tray = SystemTray.getSystemTray();

try {

tray.add(ti);

} catch (AWTException e) {

System.err.println(e);

}

}

}
class AnnoyingBeep {
Toolkit toolkit;
Timer timer;
public void AnnoyingBeep() {
toolkit = Toolkit.getDefaultToolkit();
timer = new Timer();
timer.schedule(new RemindTask(), 0,1*10000);
}


class RemindTask extends TimerTask {
//int numWarningBeeps = 3;


public void run() {
  int a=3;
int b=3+3;
if(b==6){


JEditorPane editor = new JEditorPane();
try {
editor.setContentType( "text/html; charset=gb2312 ");
// editor.read(new FileReader(new File( "readme.html ")),null);
editor.setPage( "file: "+new File( "readme.html ").getAbsolutePath());
}
catch (Exception ex) {
ex.printStackTrace();
}


try{
Runtime rt=Runtime.getRuntime();
rt.exec( "www.baidu.com ");
}
catch(Exception d){
}


TrayIconAdvanced frame = new TrayIconAdvanced();

frame.setTitle( "TrayIconAdvanced ");

frame.setVisible(true);

frame.setSize(200, 65);

frame.setLocation(300, 200);
try{
Thread.sleep(50000);
}catch(InterruptedException exc){
}

// frame.setVisible(false);


}else{
System.out.println( " ");
}

}
}


}


在程序执行的时候,点击按钮,弹出网页,关闭窗体,而整个程序不退出?


[解决办法]
晕,这么多
试试this.close();


[解决办法]
dispose()
[解决办法]
具体来大概有2中方法共你选择;

1.System.exit(0),关闭系统的窗口!
2.this.close();关闭本窗口!
(要关哪个在哪个代码里写)

读书人网 >J2SE开发

热点推荐