为什么“+”运算符未定义? JAVA

时间:2014-06-03 10:53:44

标签: java

我在eclipse =

中制作了这段代码

Strart CLASS (我犯了一个错误)

import javax.swing.JFrame;
public class strart {

public static void main(String args[])
{
    Window object = new Window();

    object.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    object.setSize(300,250);
    object.setVisible(true);
}

}

窗口CLASS

  import javax.swing.JFrame;
  import javax.swing.JButton;
  import java.awt.TextField;
  import java.awt.FlowLayout;
  import java.awt.TextField;
  import java.awt.Event.*;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;

  public class Window extends JFrame {
TextField kimeno = new TextField(25);
TextField dkimeno = new TextField(25);
TextField n1 = kimeno;
TextField n2 = dkimeno;
private JButton plus;
public Window()
{
    super("Math engine");
    setLayout(new FlowLayout());
    plus = new JButton("+");
    plus.setFocusable(false);
    plus.addActionListener(new EnableButton());
    add(plus);
    add(kimeno);
    add(dkimeno);
}

public class EnableButton implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        System.out.println(n1+n2);
    }

    }
  }

但我仍然在Window类的第32行中收到错误 错误是"对于参数类型java.awt.TextField,java.awt.TextField",运算符+未定义。

3 个答案:

答案 0 :(得分:7)

+运算符对TextField个对象毫无意义。你想要

System.out.println(n1.getText() + n2.getText());

答案 1 :(得分:1)

添加两个TextField对象意味着什么? Java中的+运算符只能用于数字或字符串的操作数。 (嗯,这可以简化它,你可以在Java语言规范中查找确切的规则。)

如果你想计算存储在TextFields中的两个数字字符串的总和(我假设是整数),你可以使用这样的东西:

Integer.parseInt(n1.getText()) + Integer.parseInt(n2.getText())

当然,您应该添加一些错误处理。

答案 2 :(得分:0)

你试过吗

System.out.println(n1.getText() + n2.getText());

与字符串一起使用时,'+'操作符会将它们连接在一起。

在这种情况下,您不处理字符串,而是处理TextField,它附加了.getText()函数以获取其值的String表示形式。