从方法类访问变量以在GUI类中使用

问题描述

我正在编写代码,将两个文本字段中的2个数字相加,并将总和显示在第三个文本字段中。但是,当我将第三个文本字段设置为显示Z值(即总和)时,出现错误“找不到符号”。我在做什么错了?

import javax.swing.*;  
import java.awt.event.*;  
public class A implements ActionListener{     
    JTextField tf1,tf2,tf3;  
    JButton b1;   
    A(){  
        JFrame f= new JFrame(); 
        JLabel myLabel= new JLabel("Enter First Value");
        myLabel.setBounds(50,50,150,20); 
        tf1=new JTextField();  
        tf1.setBounds(50,75,250,20);
        JLabel mysecondLabel= new JLabel("Enter Second Value");
        mysecondLabel.setBounds(50,125,20);  
        tf2=new JTextField();  
        tf2.setBounds(50,20);  
        tf3=new JTextField();  
        tf3.setBounds(160,225,140,20);  
        tf3.setEditable(false);   
        b1=new JButton("Sum");  
        b1.setBounds(50,95,20);
        b1.addActionListener(this); 

        f.add(tf1);f.add(myLabel);f.add(tf2);f.add(mysecondLabel);f.add(tf3);f.add(b1);  
        f.setSize(300,300);  
        f.setLayout(null);  
        f.setVisible(true);  
    }         

        public void actionPerformed(ActionEvent e) {  
        String s1=tf1.getText();  
        String s2=tf2.getText();
    if(e.getSource()!=b1){  
        return;  
    }
    
    int x = Integer.parseInt(s1);
    int y = Integer.parseInt(s2);
            
    String result = B.Z;

    tf3.setText(result); 
}  public static void main(String[] args) {  
    new A(); 
}
}
import javax.swing.*;  
import java.awt.event.*;
public class B {
    public static int myMethod(int x,int y) {
      int Z;
      Z = x + y;
      return Z;
      }
}

解决方法

您的B类没有名为Z的静态字段,您可以通过调用B.Z来访问该字段。您没有呼叫myMethod(x,y);。尝试String result = String.valueOf(B.myMethod(x,y));,看看是否可行。