2014-05-12 1 views
-1

하나의 자바 클래스에서 다른 클래스로 값을 가져 오는 데 어려움이 있습니다. 나는이 Login.java를 가지고있다. userIDField는 사용자가 자신의 userID를 입력 할 수있는 텍스트 필드이다. 이 Login.java에 getter를 추가했습니다.하나의 프로젝트에서 다른 자바 파일의 값을 가져 오는 중

그러면 사용자가 입력 한 사용자 ID를 얻기 위해 getUserID 메소드를 호출하는 AddSale.java가 있습니다. confirmAddSales 버튼을 통해 액세스하고 있습니다.

private Login log = new Login(); 

private void confirmAddSalesActionPerformed(java.awt.event.ActionEvent evt) {             
    String sample = log.getUserID(); 
    System.out.println(sample+"<------------------check if sample is working"); 
} 

그러나 AddSale.java의 "sample"문자열에 대한 결과는 없습니다.이를 해결하는 데 도움을주십시오. 고맙습니다.

+0

당신은 그 방법을 부르는 것이 확실합니까? – MrLore

+0

예. @MrLore. 메소드가 실제로 작동하는지 확인하기 위해 Login.java에이를 추가했습니다. 개인 무효 logInButtonActionPerformed (행동 이벤트 이벤트 evt) { System.out.println (getUserID() + "<-------------- checker"); AddSales salesConfirm = null; } 이렇게하면 원하는 결과를 완벽하게 출력합니다. – rocky

+0

둘 다 '로그인'의 동일한 인스턴스를 참조합니까? –

답변

1

죄송합니다. 귀하의 요청에 대한 예가 없습니다. GUI를 당신의 main 방법이고 또한 클래스 Main에 있으며 텍스트 필드와 AddSale 객체 모두를 만드는 경우, 당신이 뭔가를 할 수 있습니다 :

public class Main() { 
    JTextField userIDField; 

    public static void main(String[] args) { 
     userIDField = new JTextField(); 
     Login login = new Login(userIDField); 
     AddSale addSale = new AddSale(userIDField); 
     Frame frame = new JFrame(); 
     // ... and so on ... 
     button.addActionListener(addSale); 
    } 
} 

public class AddSale implements ActionListener { 
    private final Login login; 

    public AddSale(Login login) { 
     this.login = login; 
    } 

    private void confirmAddSalesActionPerformed(java.awt.event.ActionEvent evt) {             
     String sample = login.getUserID(); 
     System.out.println(sample+"<------------------check if sample is working"); 
    } 
} 

이 방법은 Login 객체의 AddSale 개체 및 프로그램의 다른 부분은 모두 동일한 Login 개체 및 텍스트 필드를 참조합니다. 클래스가 어떻게 생성되는지, 또는 클래스가 호출되는지에 대해 알려주지 않았기 때문에 이것은 올바른 관계가 아닐 수 있습니다. 그러나 이것이 일반적인 접근 방법입니다.

관련 문제