1

SWT のベース Canvas クラスから独自のウィジェットを実装することに決めたとしましょう。

高さを 10 に固定し、10 の倍数に適合する限り、任意のタイプの幅を許可したいと思います。

これを課す方法はありますか?私のウィジェットのユーザーは、私のウィジェットをデザインモードで使用する場合にのみ、この種の値を設定できますか?

で調べてみましたControlEventControlListener、サイズ変更をキャンセルする方法がないようです。幅/高さを検出した場合は、手動で許容値に戻す必要がありますか?

ありがとう

4

2 に答える 2

0

ウィジェットのレイアウトを制御することをお勧めします。Layout固定の高さで独自に実装し、ユーザーが設定したレイアウトを無視します。

于 2012-10-24T14:31:29.023 に答える
0

をオーバーライドする場合computeSize、幅と高さのヒントが許容範囲外にある場合は無視してください。例えば:

public Point computeSize(int wHint, int hHint, boolean changed)
{
    int width, height;

    /* We can only be 10px tall */
    height = 10;

    /* Width must be at least 10px */
    if (width < 10)
        width = 10;
    /* Width must be a multiple of 10px */
    else
        width -= (width % 10);

    return new Point(width, height);
}
于 2012-10-24T16:21:25.600 に答える