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

📄 customdialog.java

📁 It is Java for SIP phone
💻 JAVA
字号:
/* * CustomDialog.java * * Created on January 28, 2004, 12:29 AM */package gov.nist.applet.phone.ua.gui;/** * * @author  DERUELLE Jean */import javax.swing.JOptionPane;import javax.swing.JDialog;import javax.swing.JTextField;import java.beans.*; //property change stuffimport java.awt.*;import java.awt.event.*;class CustomDialog extends JDialog                   implements ActionListener,                              PropertyChangeListener {    private String typedText = null;    private JTextField textField;    private javax.swing.JFrame frame;    private String magicWord;    private JOptionPane optionPane;    private String btnString1 = "Enter";    private String btnString2 = "Cancel";    /**     * Returns null if the typed string was invalid;     * otherwise, returns the string as the user entered it.     */    public String getValidatedText() {        return typedText;    }    /** Creates the reusable dialog. */    public CustomDialog(Frame aFrame, String aWord, javax.swing.JFrame parent) {        super(aFrame, true);        frame = parent;        magicWord = aWord.toUpperCase();        setTitle("Quiz");        textField = new JTextField(10);        //Create an array of the text and components to be displayed.        String msgString1 = "What was Dr. SEUSS's real last name?";        String msgString2 = "(The answer is \"" + magicWord                              + "\".)";        Object[] array = {msgString1, msgString2, textField};        //Create an array specifying the number of dialog buttons        //and their text.        Object[] options = {btnString1, btnString2};        //Create the JOptionPane.        optionPane = new JOptionPane(array,                                    JOptionPane.QUESTION_MESSAGE,                                    JOptionPane.YES_NO_OPTION,                                    null,                                    options,                                    options[0]);        //Make this dialog display it.        setContentPane(optionPane);        //Handle window closing correctly.        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);        addWindowListener(new WindowAdapter() {                public void windowClosing(WindowEvent we) {                /*                 * Instead of directly closing the window,                 * we're going to change the JOptionPane's                 * value property.                 */                    optionPane.setValue(new Integer(                                        JOptionPane.CLOSED_OPTION));            }        });        //Ensure the text field always gets the first focus.        addComponentListener(new ComponentAdapter() {            public void componentShown(ComponentEvent ce) {                textField.requestFocusInWindow();            }        });        //Register an event handler that puts the text into the option pane.        textField.addActionListener(this);        //Register an event handler that reacts to option pane state changes.        optionPane.addPropertyChangeListener(this);    }    /** This method handles events for the text field. */    public void actionPerformed(ActionEvent e) {        optionPane.setValue(btnString1);    }    /** This method reacts to state changes in the option pane. */    public void propertyChange(PropertyChangeEvent e) {        String prop = e.getPropertyName();        if (isVisible()         && (e.getSource() == optionPane)         && (JOptionPane.VALUE_PROPERTY.equals(prop) ||             JOptionPane.INPUT_VALUE_PROPERTY.equals(prop))) {            Object value = optionPane.getValue();            if (value == JOptionPane.UNINITIALIZED_VALUE) {                //ignore reset                return;            }            //Reset the JOptionPane's value.            //If you don't do this, then if the user            //presses the same button next time, no            //property change event will be fired.            optionPane.setValue(                    JOptionPane.UNINITIALIZED_VALUE);            if (btnString1.equals(value)) {                    typedText = textField.getText();                String ucText = typedText.toUpperCase();                if (magicWord.equals(ucText)) {                    //we're done; clear and dismiss the dialog                    clearAndHide();                } else {                    //text was invalid                    textField.selectAll();                    JOptionPane.showMessageDialog(                                    CustomDialog.this,                                    "Sorry, \"" + typedText + "\" "                                    + "isn't a valid response.\n"                                    + "Please enter "                                    + magicWord + ".",                                    "Try again",                                    JOptionPane.ERROR_MESSAGE);                    typedText = null;                    textField.requestFocusInWindow();                }            } else { //user closed dialog or clicked cancel                                clearAndHide();            }        }    }    /** This method clears the dialog and hides it. */    public void clearAndHide() {        textField.setText(null);        setVisible(false);    }}

⌨️ 快捷键说明

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