2010-07-05 4 views
1

jface 마법사를 만들고 자격증 명을 수집하고 싶습니다. 1 페이지의 암호와 사용자 이름, 2 페이지에서 오라클 데이터베이스에서 얻은 목록을 표시하고 싶습니다.oracle jdbc jface wizardpage

나는 이클립스를 사용하고 있으며, 내가 원하는 장소에 모든 컨트롤을 가지고있다. 2 페이지에서 oracle connection details와 sql 문을 wizardpage의 createControl 메소드에 넣었습니다. 이것은 클래스가 발견되지 않아서 (빌드 경로에 ojdbc6.jar가 포함되어 있음) 이클립스 이슈인지 아니면 내 코드인지를 결정할 수 없다. (내 코드는 마법사가 아니라 독립형 일 때 작동한다.)

마법사 페이지를 시작할 때 오류가 발생합니다. 그 시점에서 올바른 자격 증명을 얻지 못했기 때문에 오류가 발생할 수 있습니다. 해당 마법사 페이지에 들어갈 때 물건을 실행하기위한 마법사 문서에서 메소드를 찾을 수 없습니다. 입력시 실행되는 메소드가 있습니까?

데이터베이스에 연결하여 목록을 채워 테이블을 채우려합니다.

건배

데이비드

답변

3

마법사가 열릴 때 CreateControl에 방법은 모든 페이지에 불려갑니다. SWT 또는 JFace 객체를 레이아웃하기 위해서만 createControl을 사용해야합니다.

두 번째 페이지가 표시되면 JDBC 연결을 초기화하고 싶을 것입니다. 그 때 당신은 페이지에 당신의 명부를 적재 할 것입니다. 두 번째 페이지가 표시되었을 때에

/* (non-Javadoc) 
* @see org.eclipse.jface.dialogs.DialogPage#setVisible(boolean) 
*/ 
@Override 
public void setVisible(boolean visible) { 
    super.setVisible(visible); 
    if(visible){ 
     // initialize the jdbc connection here - use a data access object 
     // use the connection or the DAO to populate your list 
    } 
} 

이 방법은 연결이 초기화됩니다 다음과 같이이를 위해, 두 번째 페이지에로 setVisible 메소드를 오버라이드 (override). setVisible 메서드로 수행 할 또 다른 유용한 작업은 해당 컨트롤에서 forceFocus()를 호출하여 올바른 컨트롤에 포커스를 할당하는 것입니다.