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

📄 customdialog.java

📁 初级学习资料必读本
💻 JAVA
字号:
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 {    private String typedText = null;    private String magicWord;    private JOptionPane optionPane;    public String getValidatedText() {        return typedText;    }    public CustomDialog(Frame aFrame, String aWord, DialogDemo parent) {        super(aFrame, true);        final DialogDemo dd = parent;        magicWord = aWord.toUpperCase();        setTitle("Quiz");        final String msgString1 = "What was Dr. SEUSS's real last name?";        final String msgString2 = "(The answer is \"" + magicWord                                  + "\".)";        final JTextField textField = new JTextField(10);        Object[] array = {msgString1, msgString2, textField};        final String btnString1 = "Enter";        final String btnString2 = "Cancel";        Object[] options = {btnString1, btnString2};        optionPane = new JOptionPane(array,                                     JOptionPane.QUESTION_MESSAGE,                                    JOptionPane.YES_NO_OPTION,                                    null,                                    options,                                    options[0]);        setContentPane(optionPane);        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));            }        });        textField.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                optionPane.setValue(btnString1);            }        });        optionPane.addPropertyChangeListener(new PropertyChangeListener() {            public void propertyChange(PropertyChangeEvent e) {                String prop = e.getPropertyName();                if (isVisible()                  && (e.getSource() == optionPane)                 && (prop.equals(JOptionPane.VALUE_PROPERTY) ||                     prop.equals(JOptionPane.INPUT_VALUE_PROPERTY))) {                    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 (value.equals(btnString1)) {                            typedText = textField.getText();                        String ucText = typedText.toUpperCase();                        if (ucText.equals(magicWord)) {                            // we're done; dismiss the dialog                            setVisible(false);                        } 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;                        }                    } else { // user closed dialog or clicked cancel                        dd.setLabel("It's OK.  "                                 + "We won't force you to type "                                 + magicWord + ".");                        typedText = null;                        setVisible(false);                    }                }            }        });    }}

⌨️ 快捷键说明

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