?? customdialog.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.*;/** * <p>Title: 用戶自定義對話框</p> * <p>Description: 自己定義對話框的風格。這使得對話框的樣式更加多樣化</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Filename: CustomDialog.java</p> * @author 杜江 * @version 1.0 */class CustomDialog extends JDialog implements ActionListener, PropertyChangeListener { private String typedText = null; private JTextField textField; private DialogDemo dd; private String magicWord; private JOptionPane optionPane; private String btnString1 = "確定"; private String btnString2 = "取消";/** *<br>方法說明:返回文本輸入字符 *<br>輸入參數: *<br>返回類型: */ public String getValidatedText() { return typedText; }/** *<br>方法說明:創建一個結果對話框 *<br>輸入參數: *<br>返回類型: */ public CustomDialog(Frame aFrame, String aWord, DialogDemo parent) { super(aFrame, true); dd = parent; magicWord = aWord.toUpperCase(); setTitle("測試"); textField = new JTextField(10); //定義顯示信息 String msgString1 = "李先生: jeck是你的英文名字嗎?"; String msgString2 = "(這個答案是: \"" + magicWord + "\"。)"; Object[] array = {msgString1, msgString2, textField}; 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) { optionPane.setValue(new Integer( JOptionPane.CLOSED_OPTION)); } }); //使的文本輸入域得到焦點 addComponentListener(new ComponentAdapter() { public void componentShown(ComponentEvent ce) { textField.requestFocusInWindow(); } }); //給文本域添加監聽事件 textField.addActionListener(this); //監聽輸入改變 optionPane.addPropertyChangeListener(this); } /** 文本域監聽處理 */ public void actionPerformed(ActionEvent e) { optionPane.setValue(btnString1); } /** 監聽輸入的改變 */ 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) { return; } optionPane.setValue( JOptionPane.UNINITIALIZED_VALUE); if (btnString1.equals(value)) { typedText = textField.getText(); String ucText = typedText.toUpperCase(); if (magicWord.equals(ucText)) { //如果輸入有效,則清楚文本域并隱藏對話框 clearAndHide(); } else { //文本輸入無效 textField.selectAll(); JOptionPane.showMessageDialog( CustomDialog.this, "對不起, \"" + typedText + "\" " + "是無效的輸入。\n" + "請重新輸入" + magicWord + ".", "再試一次", JOptionPane.ERROR_MESSAGE); typedText = null; textField.requestFocusInWindow(); } } else { //用戶關閉了對話框或點擊了“cancel” dd.setLabel("好吧! " + "我們不能影響你的決定輸入" + magicWord + "。"); typedText = null; clearAndHide(); } } }/** *<br>方法說明:清楚文本域并隱藏痘翱蝌 *<br>輸入參數: *<br>返回類型: */ public void clearAndHide() { textField.setText(null); setVisible(false); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -