Java如何对窗口最大化时的事件作出响应?。

解决方案 »

  1.   

    参考自: http://futrueboy.iteye.com/blog/239826import javax.swing.*;
    import java.awt.event.*;public class A {
    JFrame mainFrame; public A() {
    mainFrame = new JFrame("JFrameDemo Title"); // 创建一个JFrame
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭动作
    mainFrame.setSize(300, 300);// 设置窗口大小
    mainFrame.setLocationRelativeTo(null);// 使窗口显示在屏幕中央 mainFrame.addWindowListener(new WindowListener() {
    public void windowOpened(WindowEvent e) {
    System.out.println("window opened");
    } public void windowClosing(WindowEvent e) {
    System.out.println("window closing");
    } public void windowClosed(WindowEvent e) {
    System.out.println("window closed");
    } public void windowIconified(WindowEvent e) {
    System.out.println("window iconified");
    } public void windowDeiconified(WindowEvent e) {
    System.out.println("window deiconified");
    } public void windowActivated(WindowEvent e) {
    System.out.println("window activated");
    } public void windowDeactivated(WindowEvent e) {
    System.out.println("window deactivated");
    }
    });
    mainFrame.addWindowFocusListener(new WindowFocusListener() {
    public void windowGainedFocus(WindowEvent e) {
    System.out.println("gained focus");
    } public void windowLostFocus(WindowEvent e) {
    System.out.println("lost focus");
    }
    });
    mainFrame.addWindowStateListener(new WindowStateListener() {
    public void windowStateChanged(WindowEvent e) {
    System.out.println("state changed");
    if (e.getNewState() == JFrame.MAXIMIZED_BOTH) {
    System.out.println("maximized!");
    }
    // 通过获取state识别窗口状态,LZ自己研究下啦~
    // System.out.println(e.getNewState());
    // System.out.println(e.getOldState());
    }
    }); mainFrame.setVisible(true);
    } public static void main(String[] args) {
    new A();
    }
    }
      

  2.   


    import javax.swing.*;
    import java.awt.event.*;public class A {
        JFrame mainFrame;    public A() {
            mainFrame = new JFrame("JFrameDemo Title"); // 创建一个JFrame
            mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭动作
            mainFrame.setSize(300, 300);// 设置窗口大小
            mainFrame.setLocationRelativeTo(null);// 使窗口显示在屏幕中央        mainFrame.addWindowListener(new WindowListener() {
                public void windowOpened(WindowEvent e) {
                    System.out.println("window opened");
                }            public void windowClosing(WindowEvent e) {
                    System.out.println("window closing");
                }            public void windowClosed(WindowEvent e) {
                    System.out.println("window closed");
                }            public void windowIconified(WindowEvent e) {
                    System.out.println("window iconified");
                }            public void windowDeiconified(WindowEvent e) {
                    System.out.println("window deiconified");
                }            public void windowActivated(WindowEvent e) {
                    System.out.println("window activated");
                }            public void windowDeactivated(WindowEvent e) {
                    System.out.println("window deactivated");
                }
            });
            mainFrame.addWindowFocusListener(new WindowFocusListener() {
                public void windowGainedFocus(WindowEvent e) {
                    System.out.println("gained focus");
                }            public void windowLostFocus(WindowEvent e) {
                    System.out.println("lost focus");
                }
            });
            mainFrame.addWindowStateListener(new WindowStateListener() {
                public void windowStateChanged(WindowEvent e) {
                    System.out.println("state changed");
                    if (e.getNewState() == JFrame.MAXIMIZED_BOTH) {
                        System.out.println("maximized!");
                    }
                    //    通过获取state识别窗口状态,LZ自己研究下啦~
    //                System.out.println(e.getNewState());
    //                System.out.println(e.getOldState());
                }
            });        mainFrame.setVisible(true);
        }    public static void main(String[] args) {
            new A();
        }
    }
      

  3.   


    import javax.swing.*;
    import java.awt.event.*;public class A {
        JFrame mainFrame;    public A() {
            mainFrame = new JFrame("JFrameDemo Title"); // 创建一个JFrame
            mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置关闭动作
            mainFrame.setSize(300, 300);// 设置窗口大小
            mainFrame.setLocationRelativeTo(null);// 使窗口显示在屏幕中央        mainFrame.addWindowListener(new WindowListener() {
                public void windowOpened(WindowEvent e) {
                    System.out.println("window opened");
                }            public void windowClosing(WindowEvent e) {
                    System.out.println("window closing");
                }            public void windowClosed(WindowEvent e) {
                    System.out.println("window closed");
                }            public void windowIconified(WindowEvent e) {
                    System.out.println("window iconified");
                }            public void windowDeiconified(WindowEvent e) {
                    System.out.println("window deiconified");
                }            public void windowActivated(WindowEvent e) {
                    System.out.println("window activated");
                }            public void windowDeactivated(WindowEvent e) {
                    System.out.println("window deactivated");
                }
            });
            mainFrame.addWindowFocusListener(new WindowFocusListener() {
                public void windowGainedFocus(WindowEvent e) {
                    System.out.println("gained focus");
                }            public void windowLostFocus(WindowEvent e) {
                    System.out.println("lost focus");
                }
            });
            mainFrame.addWindowStateListener(new WindowStateListener() {
                public void windowStateChanged(WindowEvent e) {
                    System.out.println("state changed");
                    if (e.getNewState() == JFrame.MAXIMIZED_BOTH) {
                        System.out.println("maximized!");
                    }
                    //    通过获取state识别窗口状态,LZ自己研究下啦~
    //                System.out.println(e.getNewState());
    //                System.out.println(e.getOldState());
                }
            });        mainFrame.setVisible(true);
        }    public static void main(String[] args) {
            new A();
        }
    }
      

  4.   

    额 【/code=Java】  试一试。第一次用
      

  5.   

    还可以用WindowAdapter代替LS的那些Listener

        mainFrame.addWindowListener(new WindowAdapter() {
            public void windowActivated(WindowEvent e) {}
            public void windowClosed(WindowEvent e) {} 
            public void windowClosing(WindowEvent e) {}
            public void windowDeactivated(WindowEvent e) {}
            public void windowDeiconified(WindowEvent e) {} 
            public void windowGainedFocus(WindowEvent e) {}
            public void windowIconified(WindowEvent e) {}
            public void windowLostFocus(WindowEvent e) {}
            public void windowOpened(WindowEvent e) {}
            public void windowStateChanged(WindowEvent e) {
                if (e.getNewState() == JFrame.MAXIMIZED_BOTH) {
                    //do something here
                }
            }
        });