gpt4 book ai didi

java - 覆盖操作已执行

转载 作者:行者123 更新时间:2023-12-01 18:28:32 24 4
gpt4 key购买 nike

重写函数 actionPerformed 时出现问题,它表示无法找到符号 op1、op2 和 add。我究竟做错了什么 ?注意:这不是完整的程序。我正在尝试编写一个简单的程序来对从文本字段获取的数字进行加、除、减和乘,然后将其显示在另一个名为 result 的文本字段中。

    package arithmetic;

import java.awt.event.*;
import javax.swing.*;
import java.awt.*;


public class Arithmetic extends JFrame implements ActionListener {

private JPanel Pbutton;
private JPanel Ptext ;
private JPanel result;
private JPanel main;

Arithmetic () {
main = new JPanel();
Pbutton = new JPanel();
Ptext = new JPanel ();
result = new JPanel();

JButton add = new JButton("ADD");
JButton div = new JButton("DIVIDE");
JButton sub = new JButton("SUBTRACT");
JButton mul = new JButton("MULTIPLY");
JButton ex = new JButton ("EXIT");

JTextField op1 = new JTextField(10);
JTextField op2 = new JTextField(10);
JTextField res = new JTextField(10);

JLabel frst = new JLabel("Operand 1");
JLabel sec = new JLabel("Operand 2");
JLabel rel = new JLabel ("Result");

main.add(Pbutton);
main.add(Ptext);
main.add(result);
Ptext.add(frst);
Ptext.add(op1);
Ptext.add(sec);
Ptext.add(op2);
add(main);

Pbutton.add(add);
Pbutton.add(div);
Pbutton.add(mul);
Pbutton.add(sub);

result.add(rel);
result.add(res);
result.add(ex);

add.addActionListener(this);
sub.addActionListener(this);
mul.addActionListener(this);
div.addActionListener(this);
ex.addActionListener(this);

setSize(800,145);
Pbutton.setBackground(Color.BLACK);
Ptext.setBackground(Color.BLACK);
result.setBackground(Color.BLACK);
setVisible(true);
setLayout(null);
main.setLayout(new BoxLayout(main,BoxLayout.X_AXIS));
Pbutton.setLayout( new BoxLayout(Pbutton, BoxLayout.Y_AXIS));
}

@Override
public void actionPerformed(ActionEvent a) {
if (a.getSource() == add) {
int sum = op1.getText() + op2.getText();
}
}

public static void main(String[] args) {
new Arithmetic ();
}
}

最佳答案

op1op2 仅限于构造函数的范围。要在整个类(class)中使用它们,请将它们移至顶部(实例成员)。

喜欢

public class Arithmetic extends JFrame implements ActionListener {
private JTextField op1,op2;

稍后在构造函数中初始化它们。

Arithmetic() {
op1 = new JTextField(10);
op2 = new JTextField(10);
//.....

关于java - 覆盖操作已执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25155225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com