2

私は jFace ウィザードを持っています。これを使用して、新しいプロジェクト タイプの Eclipse プラグインを作成しています。下の画像からわかるように、左側にツリービューアーが 1 つ、右側に SWT グループがあります。私が望むのは、ユーザーがツリービューアーから項目の 1 つを選択するたびに、右側の SWT グループに動的コントロールを作成できるようにすることです。ユーザーがテスト 1 を選択すると、右側にラベル、テキスト、いくつかのラジオ ボタンなどのコントロールをいくつか作成できるはずです。同様に、ユーザーがテスト 2 を選択すると、右側に動的コントロールを作成できるはずです。 ここに画像の説明を入力

現在、以下のコードを試しました:

tree.addSelectionListener(new SelectionAdapter() {
     @Override
 public void widgetSelected(SelectionEvent e) {
     for (int i = 0; i < selection.length; i++) {

     String tempStr = selection[i].toString();
     tempStr = tempStr.replaceAll("TreeItem \\{", "");
     String finalStr = tempStr.replaceAll("\\}", "");

         if (finalStr.equals("Test One")) {
             Button btn = new Button(g2, SWT.NONE); //g2 is right side group

             btn.setText("Blaaaa");

             btn.setVisible(true);
             container.redraw();
         }

}

しかし、実行すると、右のグループに変化は見られません。誰かが私が間違っていることを教えてくれますか? 私はEclipse開発とSWTに慣れていないので、どんなポインタでも大歓迎です。

4

1 に答える 1

4

g2グループにレイアウトを設定していない可能性があります。これは、コントロールが表示されない一般的な原因です。g2.layout()を使用して、作成後に新しいコントロールが正しく配置されていることを確認することもできます。

さらにStackLayout、コントロールのセットを作成したら、選択が変更されたときに破棄するのではなく、一度にすべてを非表示にできるように、を使用することもできます。これは、ユーザーが前の選択に戻った場合に、選択を切り替えたときと同じ状態で入力したデータを見つけることができるため、多くの場合便利です。ここに例があります

于 2013-03-11T06:51:27.270 に答える