[java]
package com.han;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
* 鍵盤事件監聽(2)修改:使用監聽鍵盤事件,而不是改寫JTextField
* @author HAN
*
*/
public class KeyEvent_2_Modified extends JFrame {
/**
*
*/
private static final long serialVersionUID = -3184139070064852786L;
public KeyEvent_2_Modified() {
// TODO Auto-generated constructor stub
final Container container = getContentPane();
container.setLayout(new FlowLayout());
JLabel label = new JLabel("實現隻允許輸入數字的文本框:");
final JTextField textField = new JTextField(10);
container.add(label);
container.add(textField);
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) { // keyPressed 與 keyReleased是有時間差的!!
// TODO Auto-generated method stub
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
char[] text = textField.getText().toCharArray();
for (char ch : text) {
if (!Character.isDigit(ch)) {
// textField.removeKeyListener(this);
JOptionPane.showMessageDialog(container,
"Your input contains non-digit characters !",
"Warning", JOptionPane.WARNING_MESSAGE);
textField.setText("");
// textField.addKeyListener(this);
return;
}
}
}
}
});
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
KeyEvent_2_Modified frame = new KeyEvent_2_Modified();
frame.setTitle("實現隻允許輸入數字的文本框(2)");
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
package com.han;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
/**
* 鍵盤事件監聽(2)修改:使用監聽鍵盤事件,而不是改寫JTextField
* @author HAN
*
*/
public class KeyEvent_2_Modified extends JFrame {
/**
*
*/
private static final long serialVersionUID = -3184139070064852786L;
public KeyEvent_2_Modified() {
// TODO Auto-generated constructor stub
final Container container = getContentPane();
container.setLayout(new FlowLayout());
JLabel label = new JLabel("實現隻允許輸入數字的文本框:");
final JTextField textField = new JTextField(10);
container.add(label); www.aiwalls.com
container.add(textField);
textField.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) { // keyPressed 與 keyReleased是有時間差的!!
// TODO Auto-generated method stub
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
char[] text = textField.getText().toCharArray();
for (char ch : text) {
if (!Character.isDigit(ch)) {
// textField.removeKeyListener(this);
JOptionPane.showMessageDialog(container,
"Your input contains non-digit characters !",
"Warning", JOptionPane.WARNING_MESSAGE);
textField.setText("");
// textField.addKeyListener(this);
return;
}
}
}
}
});
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
KeyEvent_2_Modified frame = new KeyEvent_2_Modified();
frame.setTitle("實現隻允許輸入數字的文本框(2)");
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
作者:Gaowen_HAN