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的关系是动态的。~~~~~~~
所以想看看键盘事件能不能解决这个问题~~
展开
 我来答
口水猪宝
2012-07-13 · TA获得超过505个赞
知道小有建树答主
回答量:247
采纳率:0%
帮助的人:196万
展开全部
你的问题不是输入,应该是计算吧。我猜楼主用的是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);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿伦威克
2012-07-13 · 超过10用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:36.3万
展开全部
public void keyPressed(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文本框的值就不会变了
大概就是这样,我没验证过,自己试试吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lipeng82080015
2012-07-13
知道答主
回答量:19
采纳率:0%
帮助的人:8.4万
展开全部
有意义吗?一旦出现在B中删除某个数字的时候,A怎么处理?
追问
也是~~~我想实现的是A。B两个文本框随键入一个文本框就改变另外一个文本框的值,~~开始是通过监听做的,监听文本框的变化,如果变了就根据计算公式计算~~~但是有BUG,比如A,B的关系为A=3B,A输入10的时候,A变成了9.99     B变成了3.33。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123018577
2012-07-13 · TA获得超过317个赞
知道答主
回答量:48
采纳率:27%
帮助的人:21.6万
展开全部
你问的是js还是swt还是swing?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金中建
2012-07-26 · 超过28用户采纳过TA的回答
知道答主
回答量:143
采纳率:0%
帮助的人:83.4万
展开全部
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式