【发布时间】:2023-04-01 19:40:02
【问题描述】:
据我了解,默认情况下 DialogBox 在 GWT 中是不可重新调整的(甚至没有实现)。通过调整大小,我的意思是单击 DialogBox 的边缘并将其拖得更大。 我在网上看到了一些自定义的可调整大小的面板,但没有看到 DialogBox。我对如何制作可调整大小的对话框有一些想法,只是不想重新发明轮子。也许有人知道可调整大小的 DialogBox 的实现并可以将我链接到源代码?
【问题讨论】:
据我了解,默认情况下 DialogBox 在 GWT 中是不可重新调整的(甚至没有实现)。通过调整大小,我的意思是单击 DialogBox 的边缘并将其拖得更大。 我在网上看到了一些自定义的可调整大小的面板,但没有看到 DialogBox。我对如何制作可调整大小的对话框有一些想法,只是不想重新发明轮子。也许有人知道可调整大小的 DialogBox 的实现并可以将我链接到源代码?
【问题讨论】:
我做了这样的事情,它只是在右下角添加了一个红色框,然后您可以将鼠标处理程序添加到该红色框以调整大小。
public class ThumbnailDialog extends DialogBox {
private FocusPanel tab = new FocusPanel();
public ThumbnailDialog() {
super(false, false);
tab.setPixelSize(4, 4);
tab.getElement().getStyle().setBackgroundColor("red");
tab.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
tab.getElement().getStyle().setRight(0, Style.Unit.PX);
tab.getElement().getStyle().setBottom(0, Style.Unit.PX);
Element tabElement = getCellElement(2, 2);
tabElement.getStyle().setOverflow(Style.Overflow.VISIBLE);
tabElement.appendChild(tab.getElement());
}
}
【讨论】:
好的,经过一些研究,我得出一个结论,由于 DialogBox 的构造,它无法完成。至少它不能在不丢失 DialogBox 默认行为的情况下完成。所有鼠标事件都必须被覆盖。如果我覆盖所有事件,我可以放松默认行为,以防 Google 将来更改某些内容。 DialogBox 标题不与 DialogBox 本身分开。在所有鼠标事件中,DialogBox 检查发送者是否是 Caption,如果不是,它会吞下鼠标事件。这样 DialogBox 在屏幕上移动。
【讨论】: