Java键盘事件:两个文本框A,B, 公式A=2B ,当键盘在B输入数字的时候A自动计算出来。
就是键盘松开的时候立即计算,比如B输入2,A马上变成4,再输入一个2,A变成44。。我想实现的是A。B两个文本框随键入一个文本框就改变另外一个文本框的值,~~开始是通过监...
就是键盘松开的时候立即计算,比如B输入2,A马上变成4,再输入一个2,A变成44。。
我想实现的是A。B两个文本框随键入一个文本框就改变另外一个文本框的值,~~开始是通过监听做的,监听文本框的变化,如果变了就根据计算公式计算~~~但是有BUG,比如A,B的关系为A=3B,A输入10的时候,A变成了9.99 B变成了3.33。。。
这样描述下:A输入10的时候,B会变成3.33,但是监听到B改变了,A会变成9.99,所以才结束了计算~~~~
A和B的关系是动态的。~~~~~~~
所以想看看键盘事件能不能解决这个问题~~ 展开
我想实现的是A。B两个文本框随键入一个文本框就改变另外一个文本框的值,~~开始是通过监听做的,监听文本框的变化,如果变了就根据计算公式计算~~~但是有BUG,比如A,B的关系为A=3B,A输入10的时候,A变成了9.99 B变成了3.33。。。
这样描述下:A输入10的时候,B会变成3.33,但是监听到B改变了,A会变成9.99,所以才结束了计算~~~~
A和B的关系是动态的。~~~~~~~
所以想看看键盘事件能不能解决这个问题~~ 展开
展开全部
你的问题不是输入,应该是计算吧。我猜楼主用的是float或者double定义的变量的类型,这是会存在精度问题的。建议这么写:
BigDecimal A = new BigDecimal("10");//A的值,可以通过键盘输入获取
BigDecimal cons = new BigDecimal("3");//3倍么
BigDecimal B = A.divide(cons, 4, BigDecimal.ROUND_HALF_UP);//4是保留几位小数,BigDecimal.ROUND_HALF_UP是四舍五入
String strB = String.valueOf(B);
System.out.println(strB);
}
BigDecimal A = new BigDecimal("10");//A的值,可以通过键盘输入获取
BigDecimal cons = new BigDecimal("3");//3倍么
BigDecimal B = A.divide(cons, 4, BigDecimal.ROUND_HALF_UP);//4是保留几位小数,BigDecimal.ROUND_HALF_UP是四舍五入
String strB = String.valueOf(B);
System.out.println(strB);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public void keyPressed(KeyEvent e) 按下键盘按键
public void keyReleased(KeyEvent e) 释放键盘按键
public void keyTypde(KeyEvent e) 按下又释放键盘按键
楼主自己选择用哪个方法吧
public void keyReleased(KeyEvent e) 释放键盘按键
public void keyTypde(KeyEvent e) 按下又释放键盘按键
楼主自己选择用哪个方法吧
追问
要是有现成的例子就好了~~~~呵呵~
追答
public void keyPressed(KeyEvent e){
int b = Integer.parseInt(B.getText());
A.setText(b*3);
}
B的键盘按下事件,这样B文本框的值就不会变了
大概就是这样,我没验证过,自己试试吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有意义吗?一旦出现在B中删除某个数字的时候,A怎么处理?
追问
也是~~~我想实现的是A。B两个文本框随键入一个文本框就改变另外一个文本框的值,~~开始是通过监听做的,监听文本框的变化,如果变了就根据计算公式计算~~~但是有BUG,比如A,B的关系为A=3B,A输入10的时候,A变成了9.99 B变成了3.33。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你问的是js还是swt还是swing?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询