草庐IT

java - 在 SWT/JFace RCP 应用程序中填充巨大的表

您将如何在SWT表中显示大量行?巨大的是超过20K行,20列的东西。不要问我为什么要展示那么多数据,这不是重点。关键是如何让它尽可能快地工作,这样最终用户就不会厌倦等待。每行显示某个对象的实例,列是它的属性(一些)。我想使用JFace内容/标签提供程序模式,但担心它会比直接用数据访问表更慢。事情是这样的:Display.getDefault().asyncExec(newRunnable(){publicvoidrun(){Listobjects=model.getViewData();for(MyObjectobject:objects){TableItemitem=newTable

java - 可见性设置为 false 后的 SWT 组件重新布局

假设我有一个列=1的GridLayout组合。(类似于垂直流布局)我已将标签1、标签2、标签3添加到此组合中,它们将相应地出现。----------Label1|Label2|Label3|----------那么有没有可能,如果我将标签2的可见性设置为false,标签3是否可以向上移动以取代标签2?如果标签2的可见性设置回true,标签3会向下移动吗? 最佳答案 一个非常简单的解决方案可以使用GridData::exclude属性。例如,代码importorg.eclipse.swt.SWT;importorg.eclipse.s

java - 如何使用在所有平台上运行的 SWT 创建可执行 JAR?

SWT随附一个基本JAR和每个平台(Windows、Linux/32位、Linux/64位、Mac、AIX等)的一个特定JAR。如何创建一个可执行JAR以在运行时选择正确的平台JAR?[编辑]我想在子目录中提供所有平台JAR,然后在main()中修改类加载器。有人试过这个吗? 最佳答案 对于我目前的工作,我需要提供一个可执行的jar,它可以在自身内部加载jar并执行第二个main()。基本上是一个Bootstrapmain()和一个应用程序main()。第1步。在list“主类”中放置Bootstrap类第2步。当您的Bootstr

java - 防止 SWT ScrolledComposite 吃掉它的部分 child

我做错了什么?这是我的代码的摘录:publicvoidcreatePartControl(Compositeparent){parent.setLayout(newFillLayout());ScrolledCompositescrollBox=newScrolledComposite(parent,SWT.V_SCROLL);scrollBox.setExpandHorizontal(true);mParent=newComposite(scrollBox,SWT.NONE);scrollBox.setContent(mParent);FormLayoutlayout=newForm

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

我是Eclipse的新手,不知道如何让SWT和JFace的JavaDocs在我编辑时显示出来。我该怎么做?谢谢! 最佳答案 我假设您已经自己下载了这些jar并在您的项目中引用了它们。如果是这样,您可以右键单击项目资源管理器中的jar(在“引用库”节点中),然后单击“属性”。在出现的窗口中,您可以定义jar的JavaDoc和源代码的位置(如果有的话)。您也可以通过单击“项目”>“属性”>“Java构建路径”>“库”并展开要添加javadoc/source的jar的节点来达到此目的。另外值得一提的是,如果您使用Maven(http://

java - 如何从 Java 中的另一个线程更新 SWT GUI

我正在使用SWT编写桌面应用程序。从另一个线程更新GUI控件的最简单方法是什么? 最佳答案 使用Display.asyncExec或Display.syncExec,取决于您的需要。例如,另一个线程可能会调用此方法来安全地更新标签:privatestaticvoiddoUpdate(finalDisplaydisplay,finalLabeltarget,finalStringvalue){display.asyncExec(newRunnable(){@Overridepublicvoidrun(){if(!target.isDi

java - SWT 表 : auto resize all columns

Qt解决方案是对resizeColumnsToContent()的单个调用,在.NET中可以使用TextRenderer.MeasureText(),JTable可以使用AUTO_RESIZE_ALL_COLUMNS.在SWT中,有没有办法在填充列后以编程方式调整它们的大小?调用computeSize(SWT.DEFAULT,SWT.DEFAULT)返回相同的值,因此忽略列中剩余的字符。TableColumn具有setWidth(),但如何在考虑字体等因素的情况下获取当前内容的大小提示? 最佳答案 解决方法:privatestati

java - 使用 SWT 显示父模态对话框

AWT/Swing允许显示应用程序模式(阻止整个应用程序)和父模式(仅阻止父级)对话框。我如何使用SWT实现同样的目标? 最佳答案 为了阻止整个应用程序,您可以创建样式为SWT.APPLICATION_MODAL的对话框Shell,打开它,然后抽取UI事件直到shell被处置:Displaydisplay=Display.getDefault();ShelldialogShell=newShell(display,SWT.APPLICATION_MODAL);//populatedialogShelldialogShell.open

java - swt.jar 在哪里?

有人知道在哪里可以下载swt.jar吗? 最佳答案 如果你安装了EclipseIDE,你可以在eclipse/plugins/org.eclipse.swt**.jar中找到jar文件 关于java-swt.jar在哪里?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2762245/

java - 如何隐藏/删除 SWT 表中的列

在SWT(特别是在Eclipse插件中)中使用哪种方法能够隐藏/删除表中的列?A无法将此功能转移到行,因为我需要同时插入和隐藏(或删除)行和列。我尝试使用TableColumn.dispose()删除它们,但布局中的ColumnWeightData没有被删除,并且使用新的TableLayout重置整个表格布局并没有从布局中删除有关列的信息。我尝试创建所有需要的列,并使用setWidth(0)隐藏那些应该隐藏/删除的列。我写的示例代码是here.这种方法不好:3.1.它不缩放。在我的例子中,最大列数可能是几千,而用户真正需要的只有少数。3.2.处理调整大小真的很麻烦。AFAIU,即使在s