当前位置: 首页 > 知识库问答 >
问题:

如何从另一个类访问java字段值?

曹恩
2023-03-14

null

class Main {
  public static void main(String[] args) {
    JFrame frame = new CurrencyConversionFrame();
  } 
}
public class CurrencyConversionFrame extends JFrame {
  private JTextField currencyAmountField;

  private JButton createConvertButton() {
    JButton button = new JButton("Convert");
    ActionListener listener = new ConvertListener();
    button.addActionListener(listener);
    return button;
  }
}
class ConvertListener implements ActionListener {
  public void actionPerformed(ActionEvent action) {
    double balance = 0;
    try {
      balance = Double.parseDouble(currencyAmountField.getText());
    }
  }
}

null

ConvertListener.java:9: error: cannot find symbol
      balance = Double.parseDouble(currencyAmountField.getText());
                                   ^
  symbol:   variable currencyAmountField
  location: class ConvertListener

共有1个答案

钱跃
2023-03-14

为了访问类字段(按照惯例),您应该声明getter和setter,所以在您的情况下,它将是

public void setCurrencyAmountField(JTextField currencyAmountField) {
    this.currencyAmountField = currencyAmountField;
}

public JTextField getCurrencyAmountField() {
    return this.currencyAmountField;
}

这样可以通过getCurrencyAmountField()访问变量;

还有一个可能有帮助的方法是直接将ActionListener实现到帧中,并通过switch语句确定实际执行了哪种类型的操作(如果帧有多种可能的话)

public class CurrencyConversionFrame extends JFrame implements ActionListener {
   
   ...
   
    public void actionPerformed(ActionEvent action) {
        switch(action.getActionCommand()) {
            case "Name Of the button":
                balance = Double.parseDouble(currencyAmountField.getText());
                break;
            default:
                System.out.println("The action is not yet defined");
        }
    }
}
 类似资料:
  • 问题内容: 我试图尽可能简化我的困境。我有三节课: Α: Beta: 主要: 我希望我不要过分简化。我的问题是如何从Alpha中的方法访问cBeta.DoSomethingBeta()? 问题答案: 你需要以某种方式为Alpha类提供对cBeta的引用。有三种方法可以做到这一点。 1)在构造函数中为Alphas提供Beta。在Alpha课堂上写道: 并从main()调用cAlpha = new A

  • 我是java新手,我不知道如何从另一个类访问变量 我正在尝试编写一个代码来发送带有未存储在本地的附件的邮件。我想访问SendMail类中ExcelFile类中编写的变量 如何在另一个类中访问excelFileAsByte并发送邮件而不将其存储在本地。我可以使用addBodyPart和ByteArrayResource将文件添加为附件吗。

  • 问题内容: 您好我是Java的初学者,这是我的问题:我有带有以下变量的第一堂课: 我也有这堂课: 我的问题是:我想将number1和number2变量存储到ArrayList中,然后从类test中访问此ArrayList。我怎样才能做到这一点? 问题答案: 和测试类:

  • 问题内容: 我是Android和Java的新手,但是在Objective C和iPhone编程方面确实有一些经验。我试图重新创建一个已经为iPhone设计的应用程序,并且陷入了应该是一个简单概念的困境。 在我的ParserHandler类中,我从服务器解析XML,并将数据放入三个单独的ArrayList中。解析似乎工作正常。当我登录并在ParserHandler.java类中遍历ArrayList

  • 我试图理解变量的范围,以及如何使用从一个类初始化的变量,并在另一个类中使用它们,但接下来我的理解就卡住了。 我有一个类Test1,定义如下: 我在我的中调用这个类: 我有另一个类Test2: 如果随后在main中调用该方法,则值val将显示为0,而不是33。如何在另一个类中访问内存中的值? 谢谢

  • 问题内容: 请忘记设计。我知道OOP指定私有对象是该类的私有对象。我的问题是,为什么将OOP设计为使私有字段具有类级别的访问权限而不具有对象级别的访问权限? 问题答案: private修饰符强制执行封装原理。 这个想法是,“外部世界”不应更改Person内部流程,因为Person的实现可能会随时间而变化(并且你将不得不更改整个外部世界以解决实现方面的差异-这几乎是不可能的)。 当Person实例访