目前是这样的:
IDE工具是NETBEANS,使用JDK6.0以上,己实现了单击程序的最小化按钮和关闭按钮时隐藏窗体,并以托盘显示在任务栏右下角。但是我想实现一启动JAVA桌面程序,就自动最小化成托盘,不显示程序的界面,有什么方法呢?
目前己用了下面这些方法都没有作用:
getFrame().setExtendedState(0);
            getFrame().setState(JFrame.ICONIFIED);
            getFrame().setVisible(false);请知道的兄弟指导一下。

解决方案 »

  1.   

    dispose();程序启动就调用该方法import java.awt.*;
    import java.awt.event.*;
    import javax.swing.JFrame;
    public class SystemTrayTest extends JFrame {
        private TrayIcon trayIcon;//托盘图标
        private SystemTray systemTray;//系统托盘
        public SystemTrayTest() {
            //super("系统托盘图标");
            systemTray = SystemTray.getSystemTray();//获得系统托盘的实例
            //setSize(150, 150);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setVisible(true);
            try {
                // 定义托盘图标的图片
                String filePath = "com/test/images/001.jpg";
                String path = ClassLoader.getSystemResource(filePath).getFile();
                Image image = Toolkit.getDefaultToolkit().getImage(path);
                trayIcon = new TrayIcon(image);
                systemTray.add(trayIcon);//设置托盘的图标,0.gif与该类文件同一目录
                this.dispose();
            } catch (AWTException e2) {
                e2.printStackTrace();
            }
            this.addWindowListener(
                    new WindowAdapter() {
                        public void windowIconified(WindowEvent e) {
                            dispose();//窗口最小化时dispose该窗口
                        }
                    });
            trayIcon.addMouseListener(
                    new MouseAdapter() {
                        public void mouseClicked(MouseEvent e) {
                            if (e.getClickCount() == 2)//双击托盘窗口再现
                            {
                                setExtendedState(Frame.NORMAL);
                            }
                            setVisible(true);
                        }
                    });
        }
        public static void main(String args[]) {
            new SystemTrayTest();
        }
    }
      

  2.   

    虽然没得这里的帮助,但我自己解决了,上面的方法用在普通的SWING可以,但在NETBEANS下不行。
      

  3.   

    initComponents() 方法后使用 SwingUtilities.invokeLaterSwingUtilities.invokeLater(new Runnable() {            public void run() {
                    getFrame().setVisible(false);           
                }
    });