JAVA 给一道题 做好 50分

来源:百度知道 编辑:UC知道 时间:2024/06/28 02:57:07
JFrame 上有个JTextField 。要求里面只能输入 符合double类型的数值
像111,,-111,111.21(再输入 .已经输不进 应为不可能有两个小数点)
反正一切不合法的的值都输不进 做好送50分
一楼程序 非法的字符是可以输入的。 怎么让让他输不进
高级魔法师 你的程序 不行 啊 输入快了就有问题! 还不及一楼的程序啊

用 KeyListener 在按键时判断。等我写好程序贴上来。

import javax.swing.*;
import java.awt.event.*;

public class DoubleInput {
private JFrame mainFrame;
private JTextField textField;
private String str;

public DoubleInput () {
str = "";
mainFrame = new JFrame ("shuangwhywhy");
mainFrame.setLayout(null);
mainFrame.setResizable(false);
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setBounds(300,100,500,300);

textField = new JTextField();
textField.setBounds (50,50,300,25);
textField.addKeyListener(new KeyListener () {
public void keyReleased (KeyEvent ke) {
try {
Double.parseDouble(textField.getText());
str += ke.getKeyChar();
} catch (NumberFormatException nfe) {