Java 点击计算器中的任意数字后,如何在JTextField中显示数字?
我知道我应该使用“actionlistener”,所以我认为下面的代码应该可以工作,但实际上不行Java 点击计算器中的任意数字后,如何在JTextField中显示数字?,java,swing,actionlistener,Java,Swing,Actionlistener,我知道我应该使用“actionlistener”,所以我认为下面的代码应该可以工作,但实际上不行 if (e.getSource() == "but0") { // but0 is name of button with number "0" String aaa = but0.getText(); field.setText(aaa); } 应使用.equals()读取按钮标题。==在这里不行 尝试e.getSource().getText().equals(“0”) 或者在
if (e.getSource() == "but0") { // but0 is name of button with number "0"
String aaa = but0.getText();
field.setText(aaa);
}
应使用.equals()读取按钮标题。==在这里不行 尝试
e.getSource().getText().equals(“0”)
或者在创建对象时,直接将其与数组中的e.getSource()==but0添加按钮进行比较
ArrayList<JButton> buttonA = new ArrayList();
for(int i=0;i<=9;i++) {
String num_ = String.valueOf(i);
JButton button = new JButton(num_);
button.setName(num_);
buttonA.add(button);
// do remaining stuff
}
从JavaDocs的
java.awt.event.EventObject
:
public Object getSource()
事件最初发生在其上的对象
尝试与按钮本身进行比较,而不是与字符串进行比较:
if (e.getSource() == but0) {
String aaa = but0.getText();
field.setText(aaa);
}
您是否检查了0.gettext()返回的内容?如何检查?我是Java新手,我试着创建一个简单的计算器。我认为getText()方法必须从JButton返回“0”,但0=newjbutton(“0”);否,“==”可以工作,例如,如果(e.getSource()==Clean){field.setText(null);}我点击“C”按钮时,按钮“C”(Clean)的功能可以正确地与下一个代码一起工作,那么所有文本都将从JTextfield中删除!!但我只能从中输入任何文本keyboard@redavlr您应该只使用
equals()
,而不是==
,来比较字符串的相等性,因为=
只能在编译时使用已知的字符串文字。清除按钮的标题??我确信它是对象名。您正在比较的是对象而不是字符串。e、 getSource()给出了action按钮。是的,但0也是按钮0的对象名(…有人可以编写部分代码来创建jtextfield、one button和alction listener方法,这些方法有助于在点击后在textfield中显示此按钮的值吗?((需要帮助)我已经编辑了我的答案。若but0是对象的名称,那个么您不应该将其作为==“but0”进行比较;只需执行==but0即可。
if (e.getSource() == but0) {
String aaa = but0.getText();
field.setText(aaa);
}