JTextField限制輸入資料型別(java GUI)
阿新 • • 發佈:2018-11-29
package javaBasic; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ControlClass { public static void main(String[] args) { new MyFrame1(); } } class MyFrame1 extends JFrame{ private JLabel jl; private JTextField tf; MyFrame1() { this.setTitle("限制鍵盤輸入資料型別"); this.setSize(400,100);//設定視窗大小 this.setLocationRelativeTo(null);//視窗居中顯示 #先設定大小,後設置居中,否則居中不能達到效果 //this.setSize(new Dimension()); this.setResizable(true);//設定視窗大小是否可改變 jl = new JLabel("請用鍵盤輸入銀行號密碼(友情提示:密碼只能為數字型別)"); tf = new JTextField(10);//建立文字域 並設定寬度(此時寬度不設也OK) jl.setBounds(100,10,100,15); tf.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent e) { char keyChar = e.getKeyChar(); if(!(keyChar >= '0' && keyChar <= '9')){ e.consume(); //缺點,不能控制賦值黏貼的內容 } } }); this.add(jl); this.add(tf); this.setLayout(new FlowLayout());//設定佈局方式 this.setDefaultCloseOperation(EXIT_ON_CLOSE);//程式結束時關閉JVM this.setVisible(true);//顯示視窗 #做完一切工作後,再讓大作顯示出來呀 } }
除錯結果如下: