2017-12-01 9 views
0

내 모델 패키지 내 클래스 중 하나입니다MVC 스타일 프로그래밍에서 함수를 호출하는 방법은 무엇입니까? 그래서 여기에 좋아

package accountManager.model; 
import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.IOException; 

import accountManager.view.JFrame; 

public class AccountModel extends AbstractModel{ 
public String [] getInfo() throws IOException { 

    FileReader in = new FileReader("data"); 
    BufferedReader br = new BufferedReader(in); 

    //List<String> lines = new Array<String>(); 
    String line; 
    int num_lines = 0; 

    String[] accountData = new String[5]; 

    while((line = br.readLine()) != null) 
    { 
     accountData[num_lines] = line; 
     num_lines++; 
     //System.out.println(line); 
    } 
    return accountData; 
} 

}

여기

내가하는 JComboBox에 함수의 배열을 배치하는 함수를 호출하기 위해 노력하고있어,하지만 나는

JComboBox<String> comboBox = new JComboBox<String>(((AccountModel)model).getInfo()); 
    comboBox.setBounds(135, 30, 140, 20); 
    contentPane.add(comboBox); 

가 나는 또한 JComboBox에 보유 내 JFrame의에이 두 가지를 수입 ... 제대로 전화를 내가 잘못하고 있어요 확신하는 방법을 모른다 :

,
import accountManager.model.AccountModel; 
import accountManager.model.Model; 

나는 단지 내가하고있는 일을 모른다. 나는 아주 새로운 자바이다. 도와주세요.

답변

0

컨트롤러는 어디에 있습니까? MVC = model-view-controller. 당신은 당신의 모델을 가지고 있고, 당신은 당신의 견해를 가지고 있습니다, 당신의 컨트롤러는 어디에 있습니까? 일반적으로 컨트롤러에서 모델 함수를 호출하고 이러한 함수에서 얻은 데이터를 뷰에 전달합니다. 컨트롤러는 모델과 뷰 사이의 접착제입니다.

더 나아가 pubsub 패턴을 사용할 수 있습니다. 이것은 느슨한 연결을 촉진합니다. 구독자로보기를 게시자와 컨트롤러에 추가하고 구독자 인터페이스를 통해 적절한 기능을 호출하십시오. http://cs.unc.edu/~dewan/comp114/s09/Class%20Notes/15_MVC_Notes.pdf

+0

저는 컨트롤러가 있습니다. 버튼에 올 때 내 모델과 뷰가 상호 작용할 것이라고 생각했습니다. 솔직히 코드가 어디로 가는지, 너무 많은 사람들이 그렇게 많은 것을 말하지는 않습니다. 그래도 독서 자료를 가져 주셔서 감사합니다! :) –

+0

MVC 스타일 코드로 함수를 호출하는 방법에 대한 예제가 있습니까? –

+0

보기 및 모델이 절대로 직접 상호 작용하지 않습니다. 컨트롤러가 비즈니스 논리를 포함하는 모델의 함수를 호출하면 컨트롤러는이 데이터를 뷰에 전달합니다. –

0

MVC는 "컨트롤러"가 "모델"의 데이터로 "뷰"를 시드 할 것을 지시하므로 "컨트롤러"가 "모델"의 데이터를 읽고 전달해야한다고 암시합니다 "보기"는보기가 컨트롤러에 데이터를 전달할 수있는 몇 가지 방법을 제공해야한다는 것을 의미합니다. 즉, 사용자가 정확히 무엇인지는 알 수 있지만 setInfo 메서드를 제공하면됩니다.

내가 집중할 수있는 한 가지는 "컨트롤러"가 UI가 구현 된 방법을 고려하지 말고 적절한 계약을 제공한다는 점에서만 "보기"가 UI 요소를 직접 노출하지 않도록하는 것입니다. "컨트롤러"와 "보기"가 통신 할 수 있습니다.

또한 스윙은 이미 MVC이므로 다른 MVC를 추가 할 때주의해야합니다. 많은 다른 문제를 야기하는 경향이 있습니다.