2

ダイアログを smartGWT に移動しようと何時間も試みていますが、うまくいきません。

これは私のコードです:

            Dialog dlg = new Dialog();

            ListGridRecord[] h = scoringGrid.getRecords();
            HLayout chart = new HLayout();
            vlayout.addMember(chart);

            dlg.addMember(highChart(h));
            dlg.moveBy(500, 900);
            dlg.setHeight("400px");
            dlg.setWidth("700px");
            dlg.show();

私も試しました:setLeft, setTop, setRect,効果なし。
私のダイアログは常に同じ場所に表示されます。

何か案は?

4

2 に答える 2

0

同じ問題がありました。最後に、 show() の後にmoveTo() を呼び出してみましたが、うまくいきました。

dlg.show();
dlg.moveTo(400, 500);

moveBy() も同様に機能します。

なぜこれが機能するのかわかりません.show()が自動的にダイアログを中央に配置し、以前の配置を上書きすると思います。ただし、ウィンドウで同じ動作が得られず、ダイアログで show() 動作をオーバーライドするものは何も表示されません。しかし、それは私のために働いた....

于 2013-12-10T21:11:55.473 に答える
0

Dialog は Window のサブクラスです。したがって、継承されたメソッド setRect を呼び出すことができます。

Javadoc から:

public void setRect(int left, int top, int width,  int height)

// 囲んでいるコンテキストを基準にして、4 つの座標すべてを一度に設定します。

変更が表示されない場合は、場合によっては再描画する必要があるかもしれません。必要であることがわかりました。

于 2013-01-24T13:22:27.593 に答える