问题标签 [swt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
11832 浏览

java - 如何在 Eclipse 中为 SWT 和 JFace 获取 JavaDoc?

我是 Eclipse 的新手,不知道如何在编辑时显示 SWT 和 JFace 的 JavaDocs。

我该怎么做呢?谢谢!

0 投票
2 回答
1608 浏览

java - 附加到 HTML 内容时,如何保持 SWT 浏览器小部件的底部可见?

我正在 SWT 浏览器小部件中查看 HTML。我将日志消息附加到内容的末尾,并希望始终保持底部可见。目前,每当我将文本附加到内容时,我首先设置新文本:

然后我通过 JavaScript 向下滚动浏览器小部件:

这样做的问题是,当我设置文本时,小部件在向下滚动之前再次切换到顶部,所以当我快速附加大量消息时,浏览器小部件大部分时间都显示顶部,切换到时偶尔会闪烁底端。这使得无法跟踪底部记录的内容。

我知道我可以使用树查看器并获得 Eclipse 平台的所有便利,但也有一个 Swing 版本的应用程序,两者都应该使用相同的 HTML 和 CSS 表示。

理想情况下,我想避免嵌入 Swing 组件,但如果有一个允许这样做,我会很高兴听到它。我已经在 J​​ScrollPane 中使用 JEditorPane 进行了尝试,通过编辑器工具包的读取方法附加到内容:

然后像这样向下滚动:

这对于独立的 Swing 应用程序来说非常顺利,但是嵌入在 Eclipse 中它会闪烁并且跟不上 HTML 内容的快速更新。

现在,我可以在 Eclipse 中顺利完成这项工作的唯一方法是在浏览器小部件的内容之前添加而不是添加,但我真的更喜欢在底部添加新消息,而不是在顶部。

0 投票
4 回答
17156 浏览

java - 为什么 SWT Composite 有时需要调用 resize() 才能正确布局?

有时我们会遇到一个绝对拒绝正确布局的 SWT 组合。当我们在组合上调用 dispose,然后用另一个替换它时,我们经常会遇到这种情况;虽然它似乎并不严格限于这种情况。

当我们遇到这个问题时,大约 50% 的情况下,我们可以在pack()layout()问题的组合上跟注,一切都会好起来的。但是,大约 50% 的时间,我们必须这样做:

几乎所有布局管理器等组合都会发生这种情况。

我希望我有一个漂亮、简单、可重现的案例,但我没有。我希望有人会认识到这个问题并说:“嗯,呃,你错过了 xyz ......”

0 投票
5 回答
2657 浏览

java - JFace FontRegistry 上的 NoClassDefFoundError

当我启动 SWT 应用程序(通过 Eclipse 启动配置文件)时,我收到以下堆栈跟踪:

现在,让这变得奇怪的事情:

  1. 当我更改项目构建路径并将 jface.jar 替换为源项目(相同版本 - 3.3.1)时,错误消失了。
  2. 我拥有的其他应用程序使用相同的 jar,以及相同启动配置文件和项目的副本,一切正常。
  3. 不是一个ClassNotFoundException. 该类位于类路径上。如果我将源附加到 jar,我可以调试到 getFontRegistry 方法。该方法将成功执行几次,然后最终NoClassDefFoundError在第 338 行抛出一个。第 337 行是一个“if variable == null”语句,用于检查静态变量是否已被初始化。如果它尚未初始化,第 338 行正在初始化它。第一次通过,空检查失败,进行初始化。在随后通过该方法时,空检查通过,因此返回已经初始化的静态值。在最后一次通过(失败的那一次)时,空值检查再次失败(即使静态变量已经初始化),当它尝试重新初始化静态变量时,NoClassDefFoundError被抛出。这是相关的源代码(从第 336 行开始,注意 fontRegistry 是一个私有静态变量,没有在其他地方设置):

.

.

  1. 我已经获得了 jar 的新副本(以确保它没有损坏),删除了我的 .classpath 和 .project 文件并开始了一个新项目,并重新创建了启动配置文件。不用找了。

由于上面 #3 中的特殊性,我怀疑某种奇怪的类加载器行为 - 似乎最终通过该方法的方法是在另一个类加载器中?

想法?

更新: Pourquoi Litytestdata 提供的答案提示我注意在 ProgressMonitorDialog 的第 458 行上方的 try 块中发生了什么。实际上,该代码正在引发异常,该异常正在被 finally 块吞噬。根本原因是另一个缺失的类(缺失的类不是 JFontRegistry 或其任何直接相关的类,而是另一个在边缘情况下依赖于蜘蛛网的类。)我赞成所有答案,指出我要注意类路径,并接受 Pourquoi 的,因为这是突破。谢谢大家。

0 投票
2 回答
1801 浏览

java - “修复” SWT 表中的前几列以防止它们水平滚动

我们已经使用 SWT 树表实现了一个基于表的编辑器。它几乎可以满足我们的要求,只是我们无法找到一种方法来确保当用户水平滚动时前几列保持在其位置(以便人们可以识别正在编辑的行)。

有许多第三方表格控件在不同程度上不完整或被遗弃,还有一个片段显示了如何使用两个表格(垂直滚动时它们会不同步)。

解决这个问题的最佳方法是什么?

0 投票
2 回答
4786 浏览

java - Java SWT 中的窗口 ID

我想找到我的 SWT 程序的窗口 ID。

我以标准方式启动我的 SWT shell。然后如何找到已创建的窗口的 ID?该程序使用 Compiz-Fusion 窗口管理器在 Fedora 10 上执行(如果有区别的话)。

帮助解释我的意思的代码:

2009 年 3 月 6 日更新 在查看并尝试了一系列事情之后(感谢 VonC 的以下建议),我发现了一些迄今为止有效的东西。这是非常狡猾的,但至少让我暂时可以继续做一些其他的工作。

从 Control.embeddedHandle 返回的 ID 接近窗口 ID。它的不同之处在于可预测的偏移量。所以我的代码是:

WINDOW_ID_MAGIC_NUMBER 是 5+(在嵌入复合之前添加到外壳的小部件数量)。

到目前为止,它在我的系统上似乎是可靠的。我还没有看到它是否会在不同的环境中摔倒。

0 投票
3 回答
7020 浏览

java - Java SWT:如何指示选择了菜单项

使用 SWT,指示菜单项(来自任务栏菜单)是当前活动选择的常用方法是什么?复选标记?胆大?这是如何用代码完成的?

0 投票
2 回答
1783 浏览

eclipse - 如何以非模式方式在 Eclipse 插件中使用 JFace FileDialog?

我正在编写一个 Eclipse 插件,作为对某些操作的响应,我对开始一系列操作(在单独的工作中)很感兴趣。其中一项操作是请求用户提供文件名,我正在尝试使用 JFace JDialog 来完成此操作。

但是,我不清楚如何以非模式方式执行此操作;例如,我从哪里获得显示器和外壳?当开发人员可以在对话框中编辑内容时,如何确保 UI 继续工作?

0 投票
2 回答
2169 浏览

java - 在 Swing 应用程序中运行 SWT 组件

我想知道是否有人有任何尝试运行托管在 Swing 组件中的复杂 SWT UI 的经验。

我已经设法进行了一个非常简单的演示,但是如果其他人尝试过并且失败/成功地做到了这一点,那么从他们的经验中学习会很棒。

所以重申一下我的应用程序是一个 Swing 应用程序,我希望使用一个复杂的 SWT UI 组件(拖放、弹出窗口和对话框)——有人管理过这个吗?

0 投票
2 回答
9434 浏览

java - java swt表中的动态组合框列表

我在 org.eclipse.swt.widgets.Table 中创建了一个组合框控件,代码片段如下

如何通过触发某些事件来动态更改表中选定行的组合框列表(例如,仅第 5 行的 item1、item2 等更改为 item4、item5、item7 等)。在我的情况下,事件是在另一个组合框中的选择,其列表不会改变