java如何监听所有按钮

我在做计算器,声明很多按钮作数字键,但不懂如何监听全部按钮并把按过的按钮的值在到文本框里显示,监听一个按钮就用以下代码,但如果全部按钮都要弄不就很麻烦?所以怎样把全部按钮... 我在做计算器,声明很多按钮作数字键,但不懂如何监听全部按钮并把按过的按钮的值在到文本框里显示,监听一个按钮就用以下代码,但如果全部按钮都要弄不就很麻烦?所以怎样把全部按钮都监听并加动作进去。
JButton btn1=new JButton("1");
JTextField tf=new JTextField("0.",30);

btn0.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
String str = btn1.getText();
field.setText(str);
}
});
展开
 我来答
百度网友1a812615e
推荐于2016-11-14 · TA获得超过1146个赞
知道小有建树答主
回答量:739
采纳率:66%
帮助的人:417万
展开全部
先定义一个监听器al:

ActionListener al = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
String str = btn1.getText();
field.setText(str);
}
};
然后所有button都调用addActionListener(al);这样al就可以监听所有button的点击事件了.通过e.getSource()获取哪个按钮,然后获取按钮上的数字即可.
复锤总7
2012-10-04
知道答主
回答量:85
采纳率:0%
帮助的人:32.3万
展开全部
一般的作法当然是你说的那种,不过全部按钮都监听貌似很难实现,你说的那个把按过的按钮的值输入到文本框时,我以前的作法是用一个StringBuffer,当点击确认按钮的时候然后把StringBuffer的内容显示出来!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傲慢的outman
2015-10-23 · 超过31用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:24.8万
展开全部
定义一个类,实现ActionListener接口,设该类为 ButtonHandler;
然后对每个按钮添加监听时都用该类
如button1.addActionListener(new ButtonHandler());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2012-10-05 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2335万
展开全部
使用ActionListener:

ActionListener action = new ActionListener(){
@Override public void actionPerformed(ActionEvent e){
tf.setText(tf.getText()+e.getActionCommand());
}
}
numberbutton.addActionListener(action);
如果JButton没有调用setActionCommand方法。e.getActionCommand()返回的就和JButton的getText()一致。

===========================================
另一种方法是使用Action:

public class NumberAction extends AbstractAction {
private static final long serialVersionUID = -3941319225168433304L;
private transient JTextField input;

public NumberAction(final String label, final JTextField input) {
super(label);
this.input = input;
}

@Override
public void actionPerformed(final ActionEvent e) {
input.setText(input.getText() + e.getActionCommand());
}
}
final JTextField input = ...;
for (int i = 0; i < 10; i++) {
add(new JButton(new NumberAction(Integer.toString(i), input)));
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TalkIsCheap
2012-10-04 · 超过22用户采纳过TA的回答
知道答主
回答量:237
采纳率:0%
帮助的人:86.9万
展开全部
首先你得在所有按钮上注册监听器,button.addActionListener(这里面可以是同一个监视器);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式