在具有基于SWT的GUI的Java桌面应用程序中,我们有一个表,其中某些行必须跨越多个列.这是通过此官方SWT Snippet:Snippet239.java中显示的方法解决的
然而,很久以后发现这种方法在Ubuntu上存在一个主要问题,默认的Ambiance/Radiance主题:列之间总是有垂直线,即使是跨越多列的单元格也是如此.这将在以下屏幕截图中显示:


如您所见,在第一个屏幕截图中,第1列和第2列之间有一条垂直线.是否有人知道如何摆脱这些线?
我们已经尝试过以下方法:
Table.setLinesVisible(false):不起作用,垂直线不会消失.根据我们已经尝试过的事情,我认为剩下的唯一方法就是在特定于平台的SWT内部进行处理,但我甚至不知道从哪里开始这样的事情.
在Java中,我需要获取一个端口号,以便在同一程序的多个实例之间进行通信.现在,我可以简单地选择一些固定数字并继续使用它.但我想知道是否有一种方法可以动态选择端口号,这样我就不必为设置端口号而烦扰我的用户.
这是我的一个想法,它的工作原理如下:
这种策略有意义吗?或者有更好的方法来动态选择端口号吗?
我一直想知道为什么在斯卡拉来确定某种元素的位置的集合中(例如各种索引方法List.indexOf,List.indexWhere)返回-1指示,而不是更地道缺乏集合中的给定元素的,Option[Int].有一些特别的优势,以返回-1代替None,或者这只是由于历史的原因?
除了两个着名的开源工具RapidMiner和Weka之外,还有其他好的工具(开源或商业),您可以推荐用于数据挖掘吗?
提前致谢!
是否可以在Google App Engine上创建只能由单个用户访问的Web应用程序?我正在考虑一个简单的任务管理应用程序供私人使用.
是的,我已经在GAE文档上查了一下,但我真的不明白他们基于域的身份验证系统的含义.
您可能知道,标准SWT主循环如下所示:
Display display = new Display();
Shell shell = new Shell(display);
...
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
Run Code Online (Sandbox Code Playgroud)
最近,我与一位同事争论是否将主循环包装在try-catch中是有意义的,如下所示:
Display display = new Display();
Shell shell = new Shell(display);
...
shell.open();
while (!shell.isDisposed()) {
try {
if (!display.readAndDispatch()) {
display.sleep();
}
} catch (RuntimeException e) {
// TODO Implement exception handler
}
}
display.dispose();
Run Code Online (Sandbox Code Playgroud)
我的同事说这样做,如果GUI线程发生崩溃,你不必立即关闭应用程序,因此用户可能有机会在关闭程序之前保存他的数据.
所以你怎么看?做这样的事情有意义吗?
我正在尝试编译一个使用JNI的Java库.当我启动程序时,我看到一个带有UnsatisfiedLinkError的崩溃,它表示在DLL中找不到特定的方法.
仔细观察后,我发现用于编译和链接的g ++通过在方法名称中添加诸如"@ 8"或"@ 16"的后缀来破坏我的方法名称.有没有人知道正确的编译器选项来禁用名称修改?提前致谢!
编辑:我通过Eclipse + CDT插件使用MinGW.
我刚刚发现我可以在公共静态最终字段的注释中写"{@value}",以将实际字段值插入注释中.例:
/** The value of this field is {@value}. */
public static final int someField = 3
Run Code Online (Sandbox Code Playgroud)
在Eclipse中,此注释显示为"此字段的值为3".另一个技巧是编写"{@code some-code}"以便将代码插入注释中.
某处有这些特殊评论标签的完整列表吗?我找不到一个......
我正在编写一个IMAP抓取工具,它是开源应用程序的一部分,对于增量抓取,我想使用消息UID来查明我是否已经看过某个特定消息.
现在我发现2007年的一篇帖子说IMAP UID并不总是可靠的.更具体地说,如果设置了标志UIDNOTSTICKY,则不能假设UID始终相同.所以我的问题是,我是否必须严肃对待案例UIDNOTSTICKY = true,或者IMAP服务器是否具有非粘性UID遗留物并且不再(广泛使用)?
它只是我,还是Java的Override注释在一个体面的IDE中编程时实际上没用?
是的,我知道Override注释可以防止我意外地通过拼写方法名称或弄乱方法参数来覆盖超级方法.但是,常识告诉我这在现代IDE中不太可能发生,原因如下:
当然,如果你必须在记事本或其他任何东西编写Java代码,覆盖注释显然会有所帮助.但我的观点是,在现代IDE中,这种注释提供的安全性增加不值得降低可读性.任何意见?
java ×6
swt ×2
comments ×1
data-mining ×1
g++ ×1
imap ×1
open-source ×1
overriding ×1
scala ×1
tcp ×1
ubuntu ×1
uid ×1
web-crawler ×1