Tag: swt

SWT:如何进行高质量图像调整

我的应用程序需要调整ImageData的大小。 不幸的是,我没有得到我想要的GC结果(带有抗锯齿和高插值)或ImageData.scaledTo()。 得到的图像质量太低而无法接受。 什么是高质量ImageDataresize的最佳方法? 编辑: 我缩小了。

Java 7更新45破坏了我的Web Start SWT应用程序

我维护了一个使用WebStart启动的Eclipse RCP应用程序。 Java 7 u45进行了一些安全性更改,现在我的应用程序在启动时崩溃了。 我已添加到清单中: 权限:所有权限 代码库:* Trusted-Library:是的 这删除了控制面板中的所有警告消息。 但是在尝试加载我的IApplication实现时,我仍然有一个类加载器问题,可能是我要加载的第一个类。 这是更新45的新function。

在屏幕上查找复合位置

我正在用Java实现SWT和AWT的屏幕键盘。 一个重要的事情是将键盘移动到所选文本字段可以显示的位置,而不是位于屏幕键盘后面。 对于AWT,我可以检测当前所选组件的位置 Component owner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner(); if (owner == null) { return; } Point ownerLocation = owner.getLocationOnScreen(); Dimension ownerSize = owner.getSize(); 如何在SWT中实现相同的逻辑? 我通过将一个focuslistener添加到SWT事件队列来获取当前选定的小部件。 但是当我打电话时 Point location = new Point(mTextWidget.getLocation().x, mTextWidget.getLocation().y); Dimension dimension = new Dimension(mTextWidget.getSize().x, mTextWidget.getSize().y); 我将得到与父复合相对的位置。 如何才能将特殊小部件的位置与整个屏幕相关联?

原生状态栏

有没有办法在SWT中创建本机状态栏,就像在Windows应用程序中找到的那样: Windows状态栏http://sofzh.miximages.com/java/ndq168.png 我已经看到使用标签模拟状态栏,但我对真正的解决方案更感兴趣。

从另一个线程更新SWT对象

在我的Java应用程序中,当调用主模块时,我在一个单独的线程中启动我的SWT GUI。 我需要在主线程中执行一些长操作并更新GUI线程。 当我尝试从主线程更新GUI线程,即更改标签文本或其他东西时,我得到一个java.lang.NullPointerException 。 从我在网上看到的是因为SWT不允许非UI线程更新UI对象。 如何从主线程更新GUI线程。 我在网上找到了一些例子,但它们都处理了GUI在主线程中运行的情况,而长操作则在单独的线程中。 我的情况完全相反。 有人能告诉我如何更新GUI线程中的小部件吗?

JFace为SWT添加了什么?

以下是有什么区别的: TreeViewer&Tree TableViewer和表 TreeViewerColumn&TreeColumn TableViewerColumn和TableColumn 何时使用查看器和常规小部件? PS:如果你能帮助我找到理解他们的好资源,那将是一个很大的帮助。谢谢!

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

你会如何在SWT表中显示大量的行? 巨大的是20K行,20列。 不要问我为什么需要显示那么多数据,这不是重点。 关键是如何让它尽可能快地工作,以便最终用户不会感到无聊等待。 每行显示一些对象的实例,列是其属性(一些)。 我想使用JFace内容/标签提供者模式,但担心它会比直接用数据命中表更慢。 这是怎么回事: Display.getDefault().asyncExec(new Runnable() { public void run() { List objects = model.getViewData(); for(MyObject object: objects){ TableItem item = new TableItem(table, SWT.NULL); item.setImage(0, img1); item.setBackground(color1); item.setText(0, object.getProperty0()); item.setText(1, object.getProperty1()); item.setText(2, object.getProperty2()); ….. } }); 在我的计算机上绘制20k记录大约需要20秒。 我在Windows中看到的最大的性能问题是由新建表项创建和填充文本时由SWT发送的大量本机窗口消息引起的。 我找到了很好的解决方法 – 在填充之前隐藏表,然后在完成后显示它。 只需在循环之前调用table.setVisible(false),在循环之后调用table.setVisible(true)就会出现奇迹 – 速度上升六到七次! 我想加快速度。 你会建议什么? 另外,我想知道隐藏小部件的这个技巧如何在SWT(又称Linux)的非Windows实现上起作用?

Java开发GUI的未来?

考虑到这一点 Sun / Oracle决定在他们“发明”JavaFX之后不再开发Swing JavaFX并没有真正起作用, 有些人认为它已经失败了 SWT并不是真正与平台无关的特性,处理GUI元素的手动任务以及捆绑特定于平台的库的必要性 还有另一条出路吗? 如果我想在JVM上进行GUI开发 有一个很好的API(Swing和SWT也不错,但它们也不是很好。) 哪种“感觉”响应(尽管声称这已经解决了,但今天Swing和SWT仍然存在问题。) 在几年内不会过时的,我应该做出什么决定? 是否有可用的第三种选择或未来可能有一种选择? 一个选项 快速响应(Not Swing的意识形态“如果它不快,那就是开发人员的错”) 具有原生外观和感觉 使用在所有平台上运行的单个库 这是现实的吗? 谢谢! ========= 澄清一下:如果我必须在JVM上启动一个新的软件项目,有几个现有的选项,比如使用SWT或Swing,使用Swing与第三方库如SwingX,JIDE,JGoodies,Flamingo或使用像Netbeans Platform这样的应用程序框架或Eclipse RCP。 是否有支持/建议的方法可以减轻通常与Java GUI开发相关的痛苦?

为经验丰富的C ++开发人员快速切换到Java

我正在寻找在线教程/书籍,它们充分了解OOP /设计模式概念,并强调C ++和Java之间的差异(概念和语法),从而允许后者的快速发展。 非常感谢您,感谢您的时间。

OS X Java .app包无法打开其他应用程序?

我为OS X编写了一个Java SWT应用程序,将其导出为.jar并将其捆绑到.app中。 除了我的应用程序中的关键部分外,一切都按预期工作; 它需要打开其他应用程序。 我试过Runtime.exec(); 以及ProcessBuilder执行此操作,在我需要启动的其他应用程序上调用open命令。 这在Eclipse中运行得非常好,或者如果我通过终端启动导出的.jar。 但是,通过双击.app启动它确实不起作用。 我想知道这是我的错误,还是Java或OS X的限制。因为Mac应用程序是沙箱(根据我的理解),这可能是为什么在应用程序内调用open无效? 我用了两种方法来打开我需要的应用程序。 这是一款Steam游戏,也可以作为零售版,因此可以通过应用程序本身或使用steam://协议启动。 在我的代码中,我尝试了以下内容: ProcessBuilder pb = new ProcessBuilder(“open”, “steam://rungameid/57300//”); pb.start(); ProcessBuilder pb = new ProcessBuilder(“open”, appDir); pb.start(); appDir是一个字符串,其中包含我希望启动的.app包的路径。 任何想法为什么从Mac应用程序包中失败,但从Eclipse / Jar运行良好? 使用控制台运行应用程序(通过捆绑包中的bash脚本)不会返回任何错误,因此在我看来Java运行命令很好,但OS X可能会忽略它? 我也曾尝试在谷歌搜索这个,但它似乎非常罕见或只是非常具体,我无法找到任何东西。