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

📄 internalframeeventdemo.java

📁 这是一个英文版的《Java程序设计与问题解决》现在好多大学都当成教材
💻 JAVA
字号:
/* * InternalFrameEventDemo.java is a 1.4 example * that requires no other files. */import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class InternalFrameEventDemo                     extends JFrame                     implements InternalFrameListener,                                ActionListener {    JTextArea display;    JDesktopPane desktop;    JInternalFrame displayWindow;    JInternalFrame listenedToWindow;    static final String SHOW = "show";    static final String CLEAR = "clear";    String newline = "\n";    static final int desktopWidth = 500;    static final int desktopHeight = 300;    public InternalFrameEventDemo(String title) {        super(title);        //Set up the GUI.        desktop = new JDesktopPane();        desktop.putClientProperty("JDesktopPane.dragMode",                                  "outline");        //Because we use pack, it's not enough to call setSize.        //We must set the desktop's preferred size.        desktop.setPreferredSize(new Dimension(desktopWidth, desktopHeight));        setContentPane(desktop);        createDisplayWindow();        desktop.add(displayWindow); //DON'T FORGET THIS!!!        Dimension displaySize = displayWindow.getSize();        displayWindow.setSize(desktopWidth, displaySize.height);    }    //Create the window that displays event information.    protected void createDisplayWindow() {        JButton b1 = new JButton("Show internal frame");        b1.setActionCommand(SHOW);        b1.addActionListener(this);        JButton b2 = new JButton("Clear event info");        b2.setActionCommand(CLEAR);        b2.addActionListener(this);        display = new JTextArea(3, 30);        display.setEditable(false);        JScrollPane textScroller = new JScrollPane(display);        //Have to supply a preferred size, or else the scroll        //area will try to stay as large as the text area.        textScroller.setPreferredSize(new Dimension(200, 75));        textScroller.setMinimumSize(new Dimension(10, 10));        displayWindow = new JInternalFrame("Event Watcher",                                           true,  //resizable                                           false, //not closable                                           false, //not maximizable                                           true); //iconifiable        JPanel contentPane = new JPanel();        contentPane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));        contentPane.setLayout(new BoxLayout(contentPane,                                            BoxLayout.Y_AXIS));        b1.setAlignmentX(CENTER_ALIGNMENT);        contentPane.add(b1);        contentPane.add(Box.createRigidArea(new Dimension(0, 5)));        contentPane.add(textScroller);        contentPane.add(Box.createRigidArea(new Dimension(0, 5)));        b2.setAlignmentX(CENTER_ALIGNMENT);        contentPane.add(b2);        displayWindow.setContentPane(contentPane);        displayWindow.pack();        displayWindow.setVisible(true);    }    public void internalFrameClosing(InternalFrameEvent e) {        displayMessage("Internal frame closing", e);    }    public void internalFrameClosed(InternalFrameEvent e) {        displayMessage("Internal frame closed", e);    }    public void internalFrameOpened(InternalFrameEvent e) {        displayMessage("Internal frame opened", e);    }    public void internalFrameIconified(InternalFrameEvent e) {        displayMessage("Internal frame iconified", e);    }    public void internalFrameDeiconified(InternalFrameEvent e) {        displayMessage("Internal frame deiconified", e);    }    public void internalFrameActivated(InternalFrameEvent e) {        displayMessage("Internal frame activated", e);    }    public void internalFrameDeactivated(InternalFrameEvent e) {        displayMessage("Internal frame deactivated", e);    }    //Add some text to the text area.    void displayMessage(String prefix, InternalFrameEvent e) {        String s = prefix + ": " + e.getSource();        display.append(s + newline);    }    //Handle events on the two buttons.    public void actionPerformed(ActionEvent e) {        if (e.getActionCommand().equals(SHOW)) {            //They clicked the Show button.            //Create the internal frame if necessary.            if (listenedToWindow == null) {                listenedToWindow = new JInternalFrame("Event Generator",                                                      true,  //resizable                                                      true,  //closable                                                      true,  //maximizable                                                      true); //iconifiable                //We want to reuse the internal frame, so we need to                //make it hide (instead of being disposed of, which is                //the default) when the user closes it.                listenedToWindow.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);                //Add an internal frame listener so we can see                //what internal frame events it generates.                listenedToWindow.addInternalFrameListener(this);                //And we mustn't forget to add it to the desktop pane!                desktop.add(listenedToWindow);                //Set its size and location.  We'd use pack() to set the size                //if the window contained anything.                listenedToWindow.setSize(300, 100);                listenedToWindow.setLocation(                    desktopWidth/2 - listenedToWindow.getWidth()/2,                    desktopHeight - listenedToWindow.getHeight());            }            //Show the internal frame.            listenedToWindow.setVisible(true);        } else { //They clicked the Clear button.            display.setText("");        }    }    public static void main(String[] args) {        //Make sure we have nice window decorations.        JFrame.setDefaultLookAndFeelDecorated(true);        //Create and set up the window.        JFrame frame = new InternalFrameEventDemo(                "InternalFrameEventDemo");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        //Display the window.        frame.pack();        frame.setVisible(true);    }}

⌨️ 快捷键说明

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