Доступ к переменной из класса метода для использования в классе GUI

#java #addition

#ява #дополнение #java #добавление

Вопрос:

Я пишу код для добавления 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,150,20);  
        tf2=new JTextField();  
        tf2.setBounds(50,150,250,20);  
        tf3=new JTextField();  
        tf3.setBounds(160,225,140,20);  
        tf3.setEditable(false);   
        b1=new JButton("Sum");  
        b1.setBounds(50,225,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;
      }
}
  

Ответ №1:

В вашем B классе нет статического поля с именем, Z к которому вы можете получить доступ, вызвав B.Z . Вы не вызываете myMethod(x, y); . Попробуйте String result = String.valueOf(B.myMethod(x, y)); и посмотрите, работает ли это.

Комментарии:

1. Привет, спасибо за ответ. Я пробовал это, однако теперь я получаю ошибку «несовместимые типы: int не может быть преобразован в строку».

2. Ну, да. Ваш myMethod() метод возвращает значение int. Вам нужно преобразовать ее в строку, прежде чем вы сможете назначить ее result . Дайте мне минуту, чтобы отредактировать мой ответ, чтобы учесть это.

3. Превосходно. В этом случае, пожалуйста, отметьте мой ответ как принятый, чтобы другие люди с той же проблемой, которые столкнулись с вашим вопросом, могли увидеть, как ее решить. Спасибо.