需求:
創建一個含有標簽和文本框的窗體,其中文本框只能輸入數字
步驟:(大致上)
創建窗體對象
創建標簽對象
創建文本框對象
把組件添加到窗體中
設置標簽的監聽事件,對鍵盤按下的數據進行監聽
設置窗體關閉監聽事件
設置顯示窗體
代碼:
1 public class FrameTest3 { 2 3 public static void main(String[] args) { 4 5 // 創建窗體對象 6 Frame f = new Frame("QQ號碼"); 7 f.setBounds(300, 300, 500, 400); 8 f.setLayout(new FlowLayout());//別忘了布局設置 9 10 // 創建標簽對象 11 Label l = new Label("請輸入QQ號碼,非數字顯示不出來"); 12 13 // 創建文本框對象 14 TextField tf = new TextField(20); 15 16 // 把組件添加到窗體中 17 f.add(l); 18 f.add(tf); 19 20 // 設置窗體關閉監聽事件 21 f.addWindowListener(new WindowAdapter() { 22 public void windowClosing(WindowEvent e) { 23 System.exit(0); 24 } 25 }); 26 27 // 設置文本框的監聽事件,對輸入的數據進行監聽 28 // 由於是不讓非數字的數據出現到文本框中 29 // 所以監聽對象是鍵盤:KeyListener鍵盤偵聽器 KeyAdapter 鍵盤適配器 30 tf.addKeyListener(new KeyAdapter() { 31 // public void keyPressed(KeyEvent e)按下某個鍵時調用此方法。 32 public void keyPressed(KeyEvent e) {// KeyEvent:鍵盤類 33 // 首先得獲取到鍵盤按下的字符 34 // 然后進行判斷是否是數字鍵,如果不是,則取消這次操作 35 // public void consume()使用此事件,以便不會按照默認的方式由產生此事件的源代碼來處理此事件。 36 37 char c = e.getKeyChar(); 38 39 if (!(c >= '0' && c <= '9')) { 40 e.consume(); 41 } 42 } 43 }); 44 45 46 47 // 設置顯示窗體 48 f.setVisible(true); 49 50 } 51 }