在标准java程序中如何限制一个文本框只能输入数字? 给jtextfield加监听事件,判断输入内容 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java编程思想上不是有例子吗,那个例子很好,可以模仿一下! java编程思想上哪儿啊?是第二版上吗? 好像JTextFile有一些专门的子类,你查查看没有只能加监厅函数了 Numbers Onlyimport javax.swing.*;import javax.swing.text.*;import java.awt.event.*;import java.awt.*;public class NumberInputer extends JTextField implements KeyListener, MouseWheelListener{ double stepSize = 1; Toolkit toolkit = Toolkit.getDefaultToolkit(); public NumberInputer(){ Keymap keymap = getKeymap(); keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0), new AbstractAction(){ public void actionPerformed(ActionEvent e){ nextStep(); } }); keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), new AbstractAction(){ public void actionPerformed(ActionEvent e){ previousStep(); } }); addKeyListener(this); addMouseWheelListener(this); setHorizontalAlignment(RIGHT); } public void paste(){ //Ctrl-V not allowed here to prevent illegal inputs. } public void keyTyped(KeyEvent e){ char keyChar = e.getKeyChar(); if((keyChar >= '0' && keyChar <= '9') //Digits || (keyChar == '-' && getCaretPosition() == 0 && getText().indexOf("-") == -1) //Sign || (keyChar == '.' && getText().indexOf(".") == -1) //Radix point || (keyChar == '\b') //Backspace ){ return; } toolkit.beep(); e.consume(); //Stop the illegal inputs from being added to the text field. } public void keyPressed(KeyEvent e){} public void keyReleased(KeyEvent e){} public void mouseWheelMoved(MouseWheelEvent e){ if(e.getWheelRotation() < 0){ nextStep(); }else{ previousStep(); } } public double getStepSize(){ return stepSize; } public void setStepSize(double s){ stepSize = s; } public void nextStep(){ try{ double value = getDouble(); String newText = String.valueOf(value + stepSize); setText(((int) value == value) ? newText.substring(0, newText.indexOf(".")) : newText); }catch(NumberFormatException e){} } public void previousStep(){ try{ double value = getDouble(); String newText = String.valueOf(value - stepSize); setText(((int) value == value) ? newText.substring(0, newText.indexOf(".")) : newText); }catch(NumberFormatException e){} } public double getDouble() throws NumberFormatException{ return Double.parseDouble(getText()); } public float getFloat() throws NumberFormatException{ return Float.parseFloat(getText()); } public int getInt() throws NumberFormatException{ return Integer.parseInt(getText()); } public long getLong() throws NumberFormatException{ return Long.parseLong(getText()); }} 运行Java程序时类名后带参数是如何实现的? 散分 求数据结构学习好书 怎样查询Java sound 支持的文件格式? 字符串数组元素比较和统计的逻辑 第2次问了,各位帮忙!是java的图片处理问题 如何限制textFeild中只能输入数字,不能输入字符啊? 寻求linux下java和oracle开发相同爱好者,并留下QQ。以及解决一下我现有的几个问题 about JTable行选中时触发事件的问题。 如何实现为一个按钮添加多个事件 还是JDS的问题 想听听大家对 static 命名的函数、变量的用法 立刻解决,立刻给分,在线等!
是第二版上吗?
没有只能加监厅函数了
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
import java.awt.*;public class NumberInputer extends JTextField implements KeyListener, MouseWheelListener{
double stepSize = 1;
Toolkit toolkit = Toolkit.getDefaultToolkit();
public NumberInputer(){
Keymap keymap = getKeymap();
keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0),
new AbstractAction(){
public void actionPerformed(ActionEvent e){
nextStep();
}
});
keymap.addActionForKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0),
new AbstractAction(){
public void actionPerformed(ActionEvent e){
previousStep();
}
});
addKeyListener(this);
addMouseWheelListener(this);
setHorizontalAlignment(RIGHT);
}
public void paste(){
//Ctrl-V not allowed here to prevent illegal inputs.
}
public void keyTyped(KeyEvent e){
char keyChar = e.getKeyChar();
if((keyChar >= '0' && keyChar <= '9') //Digits
|| (keyChar == '-' && getCaretPosition() == 0 && getText().indexOf("-") == -1) //Sign
|| (keyChar == '.' && getText().indexOf(".") == -1) //Radix point
|| (keyChar == '\b') //Backspace
){
return;
}
toolkit.beep();
e.consume(); //Stop the illegal inputs from being added to the text field.
}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public void mouseWheelMoved(MouseWheelEvent e){
if(e.getWheelRotation() < 0){
nextStep();
}else{
previousStep();
}
} public double getStepSize(){
return stepSize;
}
public void setStepSize(double s){
stepSize = s;
}
public void nextStep(){
try{
double value = getDouble();
String newText = String.valueOf(value + stepSize);
setText(((int) value == value) ? newText.substring(0, newText.indexOf(".")) : newText);
}catch(NumberFormatException e){}
}
public void previousStep(){
try{
double value = getDouble();
String newText = String.valueOf(value - stepSize);
setText(((int) value == value) ? newText.substring(0, newText.indexOf(".")) : newText);
}catch(NumberFormatException e){}
}
public double getDouble() throws NumberFormatException{
return Double.parseDouble(getText());
}
public float getFloat() throws NumberFormatException{
return Float.parseFloat(getText());
}
public int getInt() throws NumberFormatException{
return Integer.parseInt(getText());
}
public long getLong() throws NumberFormatException{
return Long.parseLong(getText());
}
}