1
私はcom.extjs.gxt.desktop.client.Desktopの中にいくつかのWindowsを配置するアプリケーションを持っています。私はそれがサイズ変更されたときに各ウィンドウのサイズを記録するリスナーを添付する必要があります。私は2つの問題を見ている:ウィンドウのサイズを変更したときに通知される正しい方法は何ですか?
移動イベントは、ウィンドウのサイズが変更されたとき、彼らは新しいサイズが実際のウィンドウに適用される前に発生しているように見える解雇されているので、私から新しいサイズを要求することはできませんがウィンドウを直接開きます。
リスナーで受信したWindowEventのサイズは、実際のウィンドウのサイズに関係なく0x0です。
ここに何か不足していますか?
ここに私の添付のコードです:
protected void addWindowListeners(Window w,
String uid, WindowData windowData)
{
WindowChangeListener l = new WindowChangeListener(uid, windowData);
w.addWindowListener(l);
// Add this again since the default WindowListener doesn't support the Move event.
w.addListener(Events.Move, l);
}
とリスナークラス:誰もが持っている任意の洞察力のための
protected class WindowChangeListener
extends WindowListener
implements Listener<WindowEvent>
{
@Override
public void windowHide(WindowEvent we)
{
updateWindowData(we);
}
@Override
public void windowShow(WindowEvent we)
{
updateWindowData(we);
}
public void windowMove(WindowEvent we)
{
updateWindowData(we);
}
protected void updateWindowData(WindowEvent we)
{
// Here's the part that needs to get notified with the new size.
}
@Override
public void handleEvent(WindowEvent we)
{
if(we.getType() == Events.Move)
windowMove(we);
else
super.handleEvent(we);
}
}
おかげで。私は単純なものを見逃しているように感じる。