⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 framework.java

📁 java tutorial.sun公司官方出品。java入门书籍。最新版
💻 JAVA
字号:
/* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *   - Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer. * *   - Redistributions in binary form must reproduce the above copyright *     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution. * *   - Neither the name of Sun Microsystems nor the names of its *     contributors may be used to endorse or promote products derived *     from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package components;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JMenuBar;import javax.swing.JMenu;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import java.awt.*;import java.awt.event.*;/* Framework.java requires no other files. */public class Framework extends WindowAdapter {    public int numWindows = 0;    private Point lastLocation = null;    private int maxX = 500;    private int maxY = 500;    public Framework() {        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        maxX = screenSize.width - 50;        maxY = screenSize.height - 50;        makeNewWindow();    }    public void makeNewWindow() {        JFrame frame = new MyFrame(this);        numWindows++;        System.out.println("Number of windows: " + numWindows);        if (lastLocation != null) {            //Move the window over and down 40 pixels.            lastLocation.translate(40, 40);            if ((lastLocation.x > maxX) || (lastLocation.y > maxY)) {                lastLocation.setLocation(0, 0);            }            frame.setLocation(lastLocation);        } else {            lastLocation = frame.getLocation();        }        System.out.println("Frame location: " + lastLocation);        frame.setVisible(true);    }    //This method must be evoked from the event-dispatching thread.    public void quit(JFrame frame) {        if (quitConfirmed(frame)) {            System.out.println("Quitting.");            System.exit(0);        }        System.out.println("Quit operation not confirmed; staying alive.");    }    private boolean quitConfirmed(JFrame frame) {        String s1 = "Quit";        String s2 = "Cancel";        Object[] options = {s1, s2};        int n = JOptionPane.showOptionDialog(frame,                "Windows are still open.\nDo you really want to quit?",                "Quit Confirmation",                JOptionPane.YES_NO_OPTION,                JOptionPane.QUESTION_MESSAGE,                null,                options,                s1);        if (n == JOptionPane.YES_OPTION) {            return true;        } else {            return false;        }    }    public void windowClosed(WindowEvent e) {        numWindows--;        System.out.println("Number of windows = " + numWindows);        if (numWindows <= 0) {            System.out.println("All windows gone.  Bye bye!");            System.exit(0);        }    }    /**     * Create the GUI and show it.  For thread safety,     * this method should be invoked from the     * event-dispatching thread.     */    private static void createAndShowGUI() {        Framework framework = new Framework();    }    public static void main(String[] args) {        //Schedule a job for the event-dispatching thread:        //creating and showing this application's GUI.        javax.swing.SwingUtilities.invokeLater(new Runnable() {            public void run() {                createAndShowGUI();            }        });    }    class MyFrame extends JFrame {        protected Dimension defaultSize = new Dimension(200, 200);        protected Framework framework = null;        public MyFrame(Framework controller) {            super("New Frame");            framework = controller;            setDefaultCloseOperation(DISPOSE_ON_CLOSE);            addWindowListener(framework);            JMenu menu = new JMenu("Window");            menu.setMnemonic(KeyEvent.VK_W);            JMenuItem item = null;            //close            item = new JMenuItem("Close");            item.setMnemonic(KeyEvent.VK_C);            item.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent e) {                    System.out.println("Close window");                    MyFrame.this.setVisible(false);                    MyFrame.this.dispose();                }            });            menu.add(item);            //new            item = new JMenuItem("New");            item.setMnemonic(KeyEvent.VK_N);            item.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent e) {                    System.out.println("New window");                    framework.makeNewWindow();                }            });            menu.add(item);            //quit            item = new JMenuItem("Quit");            item.setMnemonic(KeyEvent.VK_Q);            item.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent e) {                    System.out.println("Quit request");                    framework.quit(MyFrame.this);                }            });            menu.add(item);            JMenuBar menuBar = new JMenuBar();            menuBar.add(menu);            setJMenuBar(menuBar);            setSize(defaultSize);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -