我正在寻找一种在Button
点击时显示小窗口的方法。
使用Jface
Dialog
并不是我想要的,而是一种可以像工具提示一样准确定位在Button
旁边的窗口。
答案 0 :(得分:3)
您可以使用第二个Shell
并将其放在Button
旁边:
public static void main(String[] args)
{
final Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(1, false));
Button button = new Button(shell, SWT.PUSH);
button.setText("Button");
final Shell popup = new Shell(shell, SWT.NONE);
popup.setLayout(new FillLayout());
Text input = new Text(popup, SWT.BORDER);
button.addListener(SWT.Selection, new Listener()
{
@Override
public void handleEvent(Event event)
{
if(popup != null && !popup.isDisposed())
popup.close();
}
});
shell.pack();
shell.open();
popup.pack();
popup.open();
popup.setLocation(button.toDisplay(button.getBounds().width, 1));
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
看起来像这样:
当然,您需要处理调整大小并移动原始shell的事件以使其保持原位。