我的课堂如下:
public class ExchangeWindow extends Window implements Button.ClickListener, Window.ResizeListener {
public ExchangeWindow() {
center();
setWidth(600, Unit.PIXELS);
setHeight(430, Unit.PIXELS);
setModal(true);
setResizable(true);
setImmediate(true);
addListener(this);
}
@Override
public void windowResized(ResizeEvent resizeEvent) {
if(left.isVisible()) {
//left.setWidth(600, UNITS_PIXELS);
exchangeTable.setWidth(600, UNITS_PIXELS);
}
}
我找到了此链接:https://vaadin.com/forum/thread/117302。我猜我的代码与此类似。是否设置setImmediate(true)永远不会调用windowResized方法;或setImmediate(false);
我正在使用Vaadin 7。
怎么了?如何捕获调整大小事件通知?
最佳答案
从该链接中的代码示例以及该帖子的日期(8年前)来看,您提供的链接可能是针对Vaadin6问题的,为Vaadin7 was released in 2013。
无论如何,应该使用addListener(this);
而不是addResizeListener(this);
:
public class WindowWithResizeListener extends Window implements Button.ClickListener, Window.ResizeListener {
public WindowWithResizeListener() {
center();
setWidth(600, Unit.PIXELS);
setHeight(430, Unit.PIXELS);
setModal(true);
setResizable(true);
setImmediate(true);
addResizeListener(this);
}
@Override
public void windowResized(ResizeEvent resizeEvent) {
Notification.show("Resized!");
}
@Override
public void buttonClick(Button.ClickEvent clickEvent) {
}
}
Vaadin 7.7.9的输出如下: