2015-01-30 1 views
0

그래서 스윙을 사용하여 자바에서 로그인 폼을 만들고 있습니다. 및 로그인 버튼을 스윙 클래스에서 다른 클래스로 텍스트 필드 값을 전송

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    String username = jTextField1.getText(); 
    String password = jTextField2.getText(); 
    if (username.equals("Admin")&&password.equals("Admin")) { 
     //Launch admin panel 
     AdminGui admin = new AdminGui(); 
     admin.setVisible(true); 
    } 
    else { 
     //Some code 
    } 
} 

당신은 사용자 이름 = 관리자와 passowrd가 실행 또한 관리자 AdminGui 있는지으로

을 클릭,하지만 난이 시험은 다른 클래스에서 수행 할 때 나는이 테스트를했다. 이 클래스의 텍스트 필드 값을 다른 클래스로 보낼 수 있습니까? , UserService 어쩌면라는 다른 클래스를 생성

AnotherClass ac = new AnotherClass (yourInput); 
ac.setYourInput(yourInput); 
+1

일단 사용이 검증되면 실제 상황을 결정하는 것은 로그인보기의 책임이 아닙니다 (실제 유효성 검사는 별도의 컨트롤러로 처리해야합니다). 대신 사용자가 확인을 클릭하고 유효성 검사가 발생하면 유효성 검사가 발생했음을 이해 당사자에게 알리기 위해 이벤트 및 알림을 발생시켜야합니다 (모래가 사용자/세션 정보를 전달할 수 있음) – MadProgrammer

+1

문제에 대해 자세히 설명해주세요. -이 "다른 클래스"인스턴스는 어디에서 만들었습니까? 이 클래스와 반대되는 기능은 무엇입니까? 한 클래스에서 다른 클래스로 정보를 전달하려는 현재의 시도로 인해 어떤 문제가 있습니다. –

+0

자세한 개요를 보려면 [이 예] (http://stackoverflow.com/questions/26517856/java-swing-where-do-actionlisteners-belong-according-to-mvc-pattern/26518274)를 참조하십시오. # 26518274) – MadProgrammer

답변

0

첫 번째 옵션은 같은 생성자를 사용하여 전송하는 것입니다

public class UserService { 
    public boolean isValidLogin(String username, String password) { 
     return username.equals("Admin") && password.equals("Admin"); 
    } 
} 

jButton1ActionPerformed 메소드가있는 클래스에서 인스턴스 UserService를 만듭니다. 예 : 보기를 만드는 또 다른 클래스가있는 경우 getter/setter 메서드 대신 실제로 전달해야하는보기가 있습니다.

private UserService userService = new UserService(); 

그런 때문에 MVC 패턴의,

if (userService.isValidLogin(username, password)) { 
0

예를 :

AnotherClass ac = new AnotherClass (yourInput); 

나 :

+0

Nitpick : 뷰가 생성되어서는 안되며 뷰에 컨트롤러 패스의 일부 여야합니다. – MadProgrammer

+0

동의합니다. 그러나 질문자는 기본 개념에 어려움을 겪고 있으므로 아키텍처를 압도하고 싶지 않습니다. – Adam

+0

그건 그렇습니다.하지만 총을 쏘기 위해 가르치려고한다면, 방아쇠가있는 곳을 보여 주기만하면됩니다. 적절한 총 핸들링과 안전성을 가르쳐 주어야합니다.) – MadProgrammer

0

당신은 당신이해야 유틸리티 클래스를 만들 수() 메소드 당신의 jButton1ActionPerformed에 전화 :

public static class YourUtilityClass{ 
    public static boolean checkLogin(String username, String password){ 
    if(username.equals("Admin") && password.equals("Admin")){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

와의를 당신의 actionPerformer-method에서의 GUI는 다음과 같이해야합니다 :

boolean loginCorrect = YourUtilityClass.checkLogin(username,password); 

if(loginCorrect){ 
    //login was okay and you can load the AdminGui 
}else{ 
    //notCorrect 
} 
+0

반환 username.equals ("관리") && password.equals 뭐가 잘못 됐어? ("관리자"); ? – Adam

+0

죄송합니다. 내 if-else에는 실수가있었습니다. 나는 그것을 손으로 썼고 그것을 시험 할 수 없었다. – Christian

관련 문제