3

私は独自のウィジェット (extending Canvas) を実装しました。これは、すべて黒であるという明確な特徴があります。

キャンバスをShellWindowBuilder のデザイン モードに追加すると、通常のキャンバスのように見えますが、実行モードではすべて問題なく表示されます。

不足しているものはありますか、それとも WindowBuilder の固有の制限ですか?

念のため、私が使用しているコードは次のとおりです。

public class MyCanvas extends Canvas {
    public MyCanvas(Composite parent, int style) {
        super(parent, style);
        setBackground(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
        addPaintListener(new PaintListenerEx());
    }

    private class PaintListenerEx implements PaintListener {
        @Override
        public void paintControl(PaintEvent e) {
            e.gc.fillRectangle(MyCanvas.this.getBounds());
            e.gc.dispose();
        }
    }
}
4

2 に答える 2

4

WindowBuilderは、を初期化するために使用しようとしているコンストラクターを呼び出していないと思いますCanvas。WindowBuilderは、フレームワークごとにいくつかの既知のエントリポイント(SWTなど)を使用しますが、正しい署名を使用している場合でも、エントリポイントが見つからない場合があります。

WindowBuilderのエントリポイントを指定する場合は、次を使用できます。

 /**
  * @wbp.parser.entryPoint
  */

WindowBuilderをそこから開始しますが、動作が保証されていません。

于 2012-10-24T11:47:54.240 に答える