Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 点击计算器中的任意数字后,如何在JTextField中显示数字?_Java_Swing_Actionlistener - Fatal编程技术网

Java 点击计算器中的任意数字后,如何在JTextField中显示数字?

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”) 或者在

我知道我应该使用“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”)


或者在创建对象时,直接将其与数组中的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);
}