我在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",运算符+未定义。
答案 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表示形式。