Tag: jface

使用Maven在OSX上出现SWT错误

我做了一个示例应用程序,我想使用maven在osx下测试swt。 我已经阅读了数百篇文章并在主线程上创建了显示,但应用程序抛出相同的exception。 你能检查我的pom文件和我的示例应用程序吗? 的pom.xml 4.0.0 asdf.abcd b 0.0.1-SNAPSHOT example org.eclipse.swt org.eclipse.swt.cocoa.macosx.x86_64 4.3 org.eclipse.jface jface 3.9.1 org.codehaus.mojo exec-maven-plugin 1.2.1 java -d64 -XstartOnFirstThread -classpath standalone.App true org.apache.maven.plugins maven-jar-plugin standalone.App 例外: ###Thread name: standalone.App.main() Thread[standalone.App.main(),5,standalone.App] <– debug message ***WARNING: Display must be created on main thread due to Cocoa restrictions. [WARNING] java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at […]

如何在JFace向导(Java)中的按钮上设置自定义文本

我正在使用JFace向导,我想在按钮Next,Back,Finish和Cancel上设置我自己的文本。 我发现今天只有非常古老的建议是完全没用的。 我也找到了一些外部jar文件的解决方案,但我真的不想将整个库添加到项目中,只是为了在4个按钮上设置文本… 有没有合理的解决方案? 提前致谢

SWT Combo和CCombo作为CellEditor

为什么最后一项是空白的? 我只有3个项目(它是一个三态布尔编辑器)。 CCombo能否实现这种坚固的Combo外观和感觉? 作为一个组合单元格编辑器,我更喜欢常规的Combo ,但是: 这个Combo可以用作CellEditor ,同时适合表行高度吗? (也许让Font更小?)

如何在JFace的TableViewer中创建一个复选框?

我创建了一个包含两列的tableViewer,我想让其中一个成为复选框。 为此,我创建了一个CheckBoxCellEditor,但我不知道为什么它不起作用。 名为tableName的列显示其值为OK。 列规范如下。 String[] COLUMN_HEADINGS = {“Select”, “Table name”}; TableColumnLayout tableLayout = new TableColumnLayout(); parent.setLayout(tableLayout); //Set what would display each column TableViewerColumn selectCheckBox = createTableViewerColumn(COLUMN_HEADINGS[0], 0); selectCheckBox.getColumn().setResizable(false); selectCheckBox.setLabelProvider(new ColumnLabelProvider(){ @Override public String getText(Object element) { return null; } }); //Set what would display each column TableViewerColumn tableName = createTableViewerColumn(COLUMN_HEADINGS[1], 1); tableName.getColumn().setResizable(false); tableName.setLabelProvider(new ColumnLabelProvider(){ public […]

DeferredContentProvider的替代方法,用于支持使用SWT.VIRTUAL在表中进行过滤

在我的项目中,我有一个TableViewer ,需要显示超过100,000个项目并过滤它们。 如果没有SWT.VIRTUAL ,表格需要多秒才能显示。 但是,在尝试使用SWT.VIRTUAL时,我SWT.VIRTUAL以下问题: 正如人们通常所做的那样实现ILazyContentProvider是有问题的,因为它与TableViewer通常的过滤机制不兼容,因此我必须自己实现整个过滤机制。 在我的搜索中,我找到了DeferredContentProvider来解决这个问题。 但DeferredContentProvider仍然有许多已知的错误 ,其中一个( 146799 )肯定已经影响了我,所以我不能使用它。 我现在的问题是:我应该看看有什么好的选择,还是我自己必须以自己处理过滤的方式实现ILazyContentProvider ? 如果是这样,我有什么机会不遇到DeferredContentProvider的实现者遇到的关于刷新问题的相同问题? 有没有人有类似的经历?

突出显示SWT树节点中的特定字符串

我有一个要求,首先要加载树,树包含4个级别。 有一个文本字段,用户可以在其中输入“filterText”,他可以按搜索按钮。 在树中,如果与filter文本匹配,则在四个级别中的任何一个级别中,该特定字符串仅应以黄色突出显示,而不是整个节点,并且将扩展其对应的树。 不匹配的树节点不应该扩展。

如何在不激活shell的情况下打开shell?

我需要知道是否有任何方法可以打开shell而不是激活它,即使我单击其中的控件。 解释我需要的最好的方法是向你展示这个小例子。 我需要保持第一个shell处于活动状态,即使我单击第二个shell或它包含的任何窗口小部件。 public class TestMeOut { public static void main(final String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setLayout(new GridLayout(1, false)); final Shell shell2 = new Shell(shell); shell2.setLayout(new GridLayout()); final Button btn = new Button(shell, SWT.PUSH); final Button btn2 = new Button(shell2, SWT.PUSH); btn.setText(“Test me”); btn2.setText(“I steal […]

JFace ColumnWeigthData导致父级增长

我有一个Eclipse RCP应用程序,并希望使用ColumnWeigthData作为ColumnLayoutData在TableViewer使用动态列大小。 问题是,无论何时布局表格,父表单(示例代码中的ScrolledForm )都会增长几个像素。 要重现,您可以运行该示例并打开/关闭该部分几次。 每一个关闭部分都会变宽。 为什么会这样做,如何让它停止? package com.test; import org.eclipse.jface.layout.TableColumnLayout; import org.eclipse.jface.viewers.ColumnWeightData; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TableViewerColumn; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.forms.widgets.Section; public class TestShell extends Shell { private final FormToolkit formToolkit = new FormToolkit(Display.getDefault()); private […]

如何在SWT表中始终显示垂直滚动条?

即使表是空的,是否可以始终在SWT表中显示垂直滚动条? 通过始终显示(可能已禁用)垂直滚动条,可以避免在列使用ColumnWeightData进行布局时最后一列被部分隐藏。 我尝试使用table.getVerticalBar().setVisible(true)初始化表或使用table.getVerticalBar().setVisible(true) – 两者都没有成功。 ScrollableComposite有一个方法setAlwaysShowScrollBars 。 我正在寻找的是Table的类似方法。 更新:我认为当表包含足够的数据时可见的滚动条不是Tableinheritance自Scrollable那些滚动条。 我调试了ScrollBar.setVisible(boolean) ,似乎没有在表格布局更新上调用它。 这个观察是否正确? 更新2:这是表格构造的片段。 即使表是空的,也可以看到垂直滚动条,并且即使表数据向下滚动也可以看到列标题。 注意:代码段遗漏了一些细节,因为标签提供程序和一些其他控件排列在同一父组合中。 protected void createMasterPart(final IManagedForm managedForm, Composite parentComposite) { FormToolkit toolkit = managedForm.getToolkit(); Composite contentComposite = toolkit.createComposite(parentComposite, SWT.NONE); contentComposite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1)); toolkit.paintBordersFor(contentComposite); contentComposite.setLayout(new GridLayout(2, false)); GridData gd; Composite tableComposite = new Composite(contentComposite, SWT.NONE); TableColumnLayout tableColumnLayout = new […]

SWT / JFace:删除小部件

Group group = new Group(parent, SWT.NONE); StyledText comment = new StyledText(group, SWT.BORDER_DASH); 这将创建一个内部带有文本区域的组。 我以后如何删除文本(从屏幕上删除它,以便我可以用其他东西替换它)?