gpt4 book ai didi

java - SWT 未启用 shell

转载 作者:行者123 更新时间:2023-12-02 07:19:47 27 4
gpt4 key购买 nike

我试图在单击扩展平台首选项的 Eclipse 插件内的按钮时打开 DateTime shell。

这是按钮SelectionAdapter的代码

    @Override
public void widgetSelected(SelectionEvent e) {
super.widgetSelected(e);
Display display = Display.getCurrent();
Shell ns = new Shell(display);
ns.setLayout (new RowLayout ());
final DateTime calendar = new DateTime (ns, SWT.CALENDAR);
ns.pack();
ns.open();
ns.forceActive();
ns.setEnabled(true);
while (!ns.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}

如下图所示,已描绘了 shell,但似乎未启用。确实无法选择任何日期或关闭/调整其大小。正如您所看到的,三个按钮(红色、黄色和绿色)显示为灰色。我做错了什么?

enter image description here

更新

我尝试像这样获取外壳:

  Display display = new Display();
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
Shell shell = window.getShell();

但现在我明白了 enter image description here

这实际上与我的意图相去甚远。我的目标是显示一个带有 DateTime 小部件的新窗口

更新

我遵循了 Gilbert 的建议并定义了我自己的 JFace Dialog。正如 Lars Vogel 在 http://www.vogella.com/articles/EclipseDialogs/article.html 中所述我将其创建为 TitleAreaDialog 的扩展。现在可以使用了,但仍有一些地方需要改进。

enter image description here

我想隐藏标题的大标题并隐藏/删除帮助按钮。有什么办法可以做到这一点吗?我是否扩展了错误的类?

最佳答案

既然您说您正在构建 Eclipse 插件,请尝试以下操作来获取 Shell。

IWorkbench workbench    = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
Shell shell = window.getShell();

创建您自己的 Shell 并不是一个好主意,除非您在 Eclipse 之外构建 SWT 应用程序。

创建您自己的 Display 并不是一个好主意,除非您在 Eclipse 之外构建 SWT 应用程序。

我认为您正在寻找的是日历对话框。您必须扩展 Eclipse Dialog 类才能创建您自己的对话框。

关于java - SWT 未启用 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406861/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com