我正在为我正在进行的项目单元测试一些SWT和Swing代码,只要我从eclipse运行它们,测试运行正常.
一旦我在哈德森环境中运行它们就会失败,因为哈德森在无头模式下运行测试.
这样做的最佳方法是什么?仅请开源解决方案(因为该项目是开源的).
我经常发现自己想要这样做.当您想要存储一些有用的信息或额外的状态时,它会非常有用.
所以我的问题是,是否有一个非常好的/强有力的理由为什么这是被禁止的?
谢谢
编辑:非常感谢所有这些答案.所以听起来对此没有正确或错误的答案.
假设我接受这些类不是子类的事实,那么不标记Control类的最终结果是什么,但是禁止子类化 - 有效地将异常/错误从编译时降级到运行时?
编辑^ 2:看到我自己的答案:显然,这些类是可重写的,但需要由覆盖者明确确认.
谢谢
我正在尝试将*.ico文件中的外部图标添加到我正在使用WindowBuilder设计窗口创建的窗口中.我可以选择shell,它会显示一个"图像"属性字段.
 这会打开图像选择器对话框:
这会打开图像选择器对话框:

如何使我的图标在此菜单中显示为类路径资源?如果给出了绝对路径,则图像有效,但我不想在我的应用程序中使用该选项.
谢谢!
我正在为我的主GUI添加一个表.它确实显示并且具有它想要显示的数据.但我觉得我的代码很乱,而且结构不正确.我正在寻找一个使用SWT的人来帮助我将正确的代码放在正确的位置.
A类 - 主GUI TableViewer
B类 - (ArrayList)表格/ B1类数据 - ArrayList结构数据模型
A类 - 有创造方法 TableViewer
  //////////////////////////////////////////////////////////////////////////
  //                         createTableViewer()                          //
  //////////////////////////////////////////////////////////////////////////
private TableViewer createTableViewer(Composite parent) {
    viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    createColumns(parent, viewer);
    table = viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    // Layout the viewer
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    viewer.setContentProvider(new ArrayContentProvider());
    *** Getting Array from Class B ***       
    viewer.setInput(AplotDataModel.getInstance().getArrayData());
    viewer.getControl().setLayoutData(gridData);
    return viewer;
}
A类也有createColumns()方法和createTableViewerColumn()方法.
 ////////////////////////////////////////////////////////////////////////// …我正在开发一个相当复杂的Java应用程序混合Swing和SWT.每当我启动应用程序时,这是控制台输出(并且应用程序不会显示):
2012-12-19 12:45:45.359 java[3442:f07] [Java CocoaComponent compatibility mode]: Enabled
2012-12-19 12:45:45.360 java[3442:f07] [Java CocoaComponent compatibility mode]: Setting timeout for SWT to 0.100000
我遵循了许多指南和教程设置:
System.setProperty("com.apple.awt.CocoaComponent.CompatibilityMode", "false");-XstartOnSecondThread--launcher-on-secondThread现在我真的没有任何线索.让我的应用程序工作的唯一方法Mac OSX是export the Eclipse project to a JAR executable.嗯,这很烦人.有人可以向我解释如何在上面设置这些属性吗?有什么魔术吗?
编辑:我正在使用:
OSX Mountain Lion 10.8.2 ,
Java 1.6u37 64bit,
SWT 4.2 cocoa x64,
Windows XP ,
Java 1.6u37 32bit,
SWT 4.2 32bit 
Group group = new Group(parent, SWT.NONE);
StyledText comment = new StyledText(group, SWT.BORDER_DASH);
这将创建一个内部带有文本区域的组.
我以后如何删除文本(从屏幕上删除它,以便我可以用其他东西替换它)?
我在SWT/JFace中寻找一个支持自动完成/提前输入的组合(查看器),即用户可以输入几个字符,下拉列表应该显示所有匹配的元素.
我正在使用SWT编写桌面应用程序.从另一个线程更新GUI控件的最简单方法是什么?
有没有办法在SWT中创建本机状态栏,就像在Windows应用程序中找到的那样:
Windows状态栏http://i47.tinypic.com/ndq168.jpg
我已经看到使用标签模拟状态栏,但我对真正的解决方案更感兴趣.
我写了一个简单的程序.只是CTabFolder和CTabItem固有的WelcomTab.我想用浏览器填充我的WelcomeTab来渲染我的htmls.在WelcomeTab的init()方法我创建一个浏览器但是当程序想要构造它时,我得到这个错误
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.browser.Mozilla.initMozilla(Unknown Source)
at org.eclipse.swt.browser.Mozilla.create(Unknown Source)
at org.eclipse.swt.browser.Browser.<init>(Unknown Source)
at org.hekmatof.Hbook.UI.WelcomeTab.init(WelcomeTab.java:55)
at org.hekmatof.Hbook.UI.WelcomeTab.<init>(WelcomeTab.java:30)
...
另外我在基于Arch-Linux的KDE上使用Eclipse 3.7,因为我搜索了这个错误,无处不在告诉有关线程的句柄限制,但这是一个简单的程序,没有Font或Image ......要处理.我认为从操作系统获取处理应该是一个问题