1

jfaceウィザードを作成し、進行中に資格情報を収集したい.1ページ目にパスワードとユーザー名、次に2ページ目にOracleデータベースから取得したリストを表示したい.

私は日食を使用しており、必要な場所にすべてのコントロールがあります。2 ページ目では、oracle 接続の詳細と sql ステートメントを、wizardpage の createControl メソッドに入れました。これは、見つからないクラス (ビルド パスに含まれる ojdbc6.jar) で失敗するようです。これは、これが Eclipse の問題なのか、自分のコードなのかを判断できません (私のコードは、ウィザードではなくスタンドアロンの場合に機能します)。

ウィザードページを開始すると失敗しますが、その時点で正しい資格情報を取得していないため、おそらくそうなるでしょう。そのウィザードページに入ったときに何かを実行するための方法が、ウィザードページのドキュメントに見つかりませんでした。入力時に実行されるメソッドはありますか?

データベースに接続してリストをプルダウンし、テーブルに入力したいと考えています。

乾杯

デビッド

4

1 に答える 1

3

ウィザードを開くと、すべてのページで createControl メソッドが呼び出されます。createControl は、SWT または JFace オブジェクトをレイアウトする場合にのみ使用してください。

2 番目のページが表示されるようになったら、JDBC 接続を初期化することをお勧めします。その時点で、リストをページにロードします。これを行うには、次のように 2 ページ目の setVisible メソッドをオーバーライドします。

/* (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
    }
}

このようにして、2 番目のページが表示されるときに接続が初期化されます。setVisible メソッドから実行できるもう 1 つの便利な方法は、関連するコントロールで forceFocus() を呼び出して、フォーカスを適切なコントロールに割り当てることです。

于 2011-04-16T20:27:09.123 に答える