JavaTM 2 Platform
Standard Ed. 6

javax.swing
類別 InputVerifier

java.lang.Object
  繼承者 javax.swing.InputVerifier

public abstract class InputVerifier
extends Object

此類別的用途是通過帶文本欄位的 GUI 說明客戶端支持串流暢的焦點導航。在允許使用者導航到文本欄位以外之前,這類別 GUI 常常需要確保使用者輸入的文本是有效的(例如,文本具有正確的格式)。為做到這一點,客戶端要使用 JComponentsetInputVerifier 方法創建 InputVerifier 的子類別,並將其子類別的實例附加到想要驗證其輸入的 JComponent 中。在將焦點轉移到另一個請求它的 Swing 元件之前,要調用輸入驗證器的 shouldYieldFocus 方法。只在該方法返回 true 時才轉移焦點。

以下範例有兩個文本欄位,其中第一個欄位期望使用者輸入字元串 "pass"。如果在第一個文本欄位中輸入該字元串,那麼使用者可以通過在第二個文本欄位上單擊或按下 TAB 前進到第二個文本欄位。不過,如果將其他字元串輸入到第一個文本欄位中,則使用者無法將焦點轉移到第二個文本欄位。

 import java.awt.*;
 import java.util.*;
 import java.awt.event.*;
 import javax.swing.*;
 
 // This program demonstrates the use of the Swing InputVerifier class.
 // It creates two text fields; the first of the text fields expects the
 // string "pass" as input, and will allow focus to advance out of it
 // only after that string is typed in by the user.

 public class VerifierTest extends JFrame {
     public VerifierTest() {
         JTextField tf1 = new JTextField ("Type \"pass\" here");
           getContentPane().add (tf1, BorderLayout.NORTH);
           tf1.setInputVerifier(new PassVerifier());
 
           JTextField tf2 = new JTextField ("TextField2");
           getContentPane().add (tf2, BorderLayout.SOUTH);
 
           WindowListener l = new WindowAdapter() {
               public void windowClosing(WindowEvent e) { 
                   System.exit(0); 
               }
           };
           addWindowListener(l);
     }
 
     class PassVerifier extends InputVerifier {
         public boolean verify(JComponent input) {
               JTextField tf = (JTextField) input;
               return "pass".equals(tf.getText());
         }
     }
 
     public static void main(String[] args) {
         Frame f = new VerifierTest();
           f.pack();
           f.setVisible(true);
     }
 }
 

從以下版本開始:
1.3

建構子摘要
InputVerifier()
           
 
方法摘要
 boolean shouldYieldFocus(JComponent input)
          調用 verify(input) 來確保輸入是有效的。
abstract  boolean verify(JComponent input)
          檢查 JComponent 的輸入是否有效。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

InputVerifier

public InputVerifier()
方法詳細資訊

verify

public abstract boolean verify(JComponent input)
檢查 JComponent 的輸入是否有效。此方法不應有副作用。該方法返回一個指示參數的輸入狀態的 boolean 值。

參數:
input - 要驗證的 JComponent
返回:
在有效時返回 true,在無效時返回 false
另請參見:
JComponent.setInputVerifier(javax.swing.InputVerifier), JComponent.getInputVerifier()

shouldYieldFocus

public boolean shouldYieldFocus(JComponent input)
調用 verify(input) 來確保輸入是有效的。此方法可以有副作用。需要特別指出的是,在使用者試圖將焦點移出參陣列件進入此視窗中的另一個 Swing 元件時調用此方法。如果此方法返回 true,那麼正常轉移焦點;如果該方法返回 false,則焦點仍然留在參陣列件中。

參數:
input - 要驗證的 JComponent
返回:
在有效時返回 true,在無效時返回 false
另請參見:
JComponent.setInputVerifier(javax.swing.InputVerifier), JComponent.getInputVerifier()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only