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

📄 focuseventdemo.java

📁 这是一个英文版的《Java程序设计与问题解决》现在好多大学都当成教材
💻 JAVA
字号:
/* * FocusEventDemo.java is a 1.4 example that requires * no other files. */import javax.swing.*;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridBagLayout;import java.awt.GridBagConstraints;import java.awt.Insets;import java.util.Vector;import java.awt.event.FocusListener;import java.awt.event.FocusEvent;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.awt.event.WindowEvent;import java.awt.event.WindowAdapter;public class FocusEventDemo extends JApplet                            implements FocusListener,                                       ActionListener {    JTextArea display;    FocusWindow window;    JButton b1, b2;    static final String SHOW = "show";    static final String CLEAR = "clear";    static final String newline = "\n";    public void init() {        b1 = new JButton("Click to bring up a window.");        b1.setActionCommand(SHOW);        b1.addActionListener(this);        b2 = new JButton("Click to clear the display.");        b2.setActionCommand(CLEAR);        b2.addActionListener(this);        display = new JTextArea();        display.setEditable(false);        JScrollPane scrollPane = new JScrollPane(display);        scrollPane.setPreferredSize(new Dimension(375, 125));                                        JFrame.setDefaultLookAndFeelDecorated(true);        JPanel contentPane = new JPanel();        contentPane.setLayout(new BorderLayout());        contentPane.add(b1, BorderLayout.PAGE_START);        contentPane.add(scrollPane, BorderLayout.CENTER);        contentPane.add(b2, BorderLayout.PAGE_END);        setContentPane(contentPane);        //Create but don't show window.        window = new FocusWindow(this);    }    public void stop() {        SwingUtilities.invokeLater(new Runnable() {            public void run() {                window.setVisible(false);            }        });    }    public void focusGained(FocusEvent e) {        displayMessage("Focus gained", e);    }    public void focusLost(FocusEvent e) {        displayMessage("Focus lost", e);    }    void displayMessage(String prefix, FocusEvent e) {        display.append(prefix                       + ": "                       + e.getComponent()                       + newline);     }    public void actionPerformed(ActionEvent e) {        if (e.getActionCommand() == SHOW) {            window.pack();            window.setVisible(true);        } else { //CLEAR            display.setText("");        }    }}class FocusWindow extends JFrame {    public FocusWindow(FocusListener listener) {        super("Focus Event Window");        //We'll use the default close operation -- hiding.        JPanel contentPane = new JPanel();        this.addFocusListener(listener);        GridBagLayout gridbag = new GridBagLayout();        GridBagConstraints c = new GridBagConstraints();        contentPane.setLayout(gridbag);        c.fill = GridBagConstraints.HORIZONTAL;        c.weightx = 1.0;  //Make column as wide as possible.        JTextField textField = new JTextField("A TextField");        textField.setMargin(new Insets(0,2,0,2));        textField.addFocusListener(listener);        gridbag.setConstraints(textField, c);        contentPane.add(textField);        c.weightx = 0.1;  //Widen every other column a bit, when possible.         c.fill = GridBagConstraints.NONE;        JLabel label = new JLabel("A Label");        label.setBorder(BorderFactory.createEmptyBorder(0,5,0,5));        label.addFocusListener(listener);        gridbag.setConstraints(label, c);        contentPane.add(label);        //We'll add a focus listener to a choice, but since it's        //typically implemented as a compound component, we aren't        //likely to get any events.        String choiceprefix = "Choice item #";        final int numItems = 10;        Vector vector = new Vector(numItems);        for (int i = 0; i < numItems; i++) {            vector.addElement(choiceprefix + i);        }        JComboBox choice = new JComboBox(vector);        choice.addFocusListener(listener);        gridbag.setConstraints(choice, c);        contentPane.add(choice);        c.gridwidth = GridBagConstraints.REMAINDER;        JButton button = new JButton("A Button");        button.addFocusListener(listener);        gridbag.setConstraints(button, c);        contentPane.add(button);        c.weighty = 1.0;   //Make this row as tall as possible.        c.weightx = 0.0;           c.fill = GridBagConstraints.BOTH;        String listprefix = "List item #";        Vector listVector = new Vector(numItems);        for (int i = 0; i < numItems; i++) {            listVector.addElement(listprefix + i);        }        JList list = new JList(listVector);        JScrollPane scrollPane = new JScrollPane(list);        list.addFocusListener(listener);        gridbag.setConstraints(scrollPane, c);        contentPane.add(scrollPane);        setContentPane(contentPane);    }}

⌨️ 快捷键说明

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