在标准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文件流读取出现乱码 新手入门求助:my eclipse运行 JAVA中long型转float型的问题 JAVA操作串口的问题, 相关API 在NETBEANS平台如何配置? JTable整行拖动 同步问题 新手小问题 请:xxy(802)孔明再世进来领分(ver6.0) 求救jni 请教一道简单的关于String字符串引用的问题。。。。。。 想听听大家对 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());
}
}