Tag: jface

如何在Eclipse中获取JavaDoc for SWT和JFace?

我是Eclipse的新手,无法弄清楚如何在编辑时让SWD和JFace的JavaDocs显示出来。 我该怎么做呢? 谢谢!

在基础模型更改后更新JFace TreeViewer

我的视图中有一个树查看器,它从标准的Ecore编辑器中侦听EMF模型,并使用它进行更多操作。 我已经注册了一个选择监听器,它检查所选元素是否是树查看器作为输入所需的类型。 所以问题是如果模型中有任何变化(例如向现有元素添加新元素或新信息等),树查看器仅在用户更改选择时显示更改的模型,即点击任何模型元素等。 但我需要做的是,如果底层模型发生变化,树形查看器会直接得到通知,并且无需点击模型来监听它就可以显示新的模型元素。 我找到了以下eclipse角文章( https://www.eclipse.org/articles/Article-TreeViewer/TreeViewerArticle.htm#inputChanged ),并且从“响应th更改”看来,似乎是inputChanged()和refresh()方法可能是我正在寻找的解决方案,不是吗? 我仍然想知道是否有更简单的方法可以做到这一点,而无需更改模型代码,但只能通过在UI代码中进行更改? 谢谢!

小部件的背景颜色在JFace PopupDialog

我想使用JFace PopupDialog作为用户输入的轻量级对话框。 但是我对文本小部件的背景颜色有一些问题。 正如您在下面的1中看到的,SWT.MULTI文本小部件没有背景和边框,SWT.SINGLE文本小部件没有背景。 我尝试用以下方法覆盖背景颜色: Text comment = new Text(composite, SWT.MULTI|SWT.BORDER); comment.setFocus(); comment.setBackground(new Color(Display.getDefault(), new RGB(000, 000, 000))); // method of PopupDialog applyBackgroundColor(new Color(Display.getDefault(), new RGB(000, 000, 000)), comment); 有没有人知道如何妥善处理这个问题? 提前致谢! 编辑:根据要求,这是弹出窗口的源。 我将PopupDialog子类化,因为我希望在Cursor位置旁边打开弹出窗口: public class MouseLocationPopupDialog extends PopupDialog { private final static int SHELL_STYLE = PopupDialog.INFOPOPUP_SHELLSTYLE; public MouseLocationPopupDialog(Shell parent, String infoText) { this(parent, SHELL_STYLE, true, […]

SWT – 在复合材料中包裹标签

我有ScrolledComposite ,它只允许垂直滚动。 (heighthint = 400) 在这个ScrolledComposite中,我有另一个CompositeA (滚动高度可能超过400)来存储所有其他小部件。 我有一个很长的标签(启用了SWT.WRAP )。 但它不是包装,而是始终以单行显示。 我希望这个标签根据其父级( CompositeA )的宽度进行换行 我忘了补充一点,这个CompositeA是一个带有makeColumnsEqualWidth = true的2列’GridLayout’ 编辑:这是我的代码。 public void createPartControl(Composite parent) { // TODO Auto-generated method stub Display display = parent.getDisplay(); toolkit = new FormToolkit(display); form = toolkit.createForm(parent); form.setText(“ABC”); Composite body = form.getBody(); TableWrapLayout layout = new TableWrapLayout(); layout.numColumns = 2; body.setLayout(layout); Label header1 = […]

如何在Java SWT中为TableViewer单元添加工具提示

我有一个表,每行代表不同的值。 字符串有点长,我希望当我将鼠标hover在特定单元格上时,工具提示应弹出来自单元格的信息。 我编写了这段代码,但工具提示没有被替换, getToolTipText方法永远不会被执行: columnMessage.setLabelProvider(new ColumnLabelProvider() { @Override public void update(ViewerCell cell) { // … as now } @Override public String getToolTipText(Object element) { return getText(element); } });

如何更改jface表的背景选择颜色

在elipse-rcp应用程序中,我正在为jface表中的行设置背景颜色,但我不希望选择更改此颜色。 我希望能够指定所选行的颜色更改。

JFace对话框按钮翻译

我正在创建一个独立的SWT / JFace应用程序。 我以前使用普通的旧SWT MessageBox: int style = SWT.APPLICATION_MODAL | SWT.YES | SWT.NO; MessageBox messageBox = new MessageBox (getShell(), style); messageBox.setText (“Question”); messageBox.setMessage (“So?”); boolean result = messageBox.open() == SWT.YES; 我尝试切换到JFace MessageDialog boolean result = MessageDialog.openQuestion(getShell(), “Question”, “So?”); 我遇到的问题是在SWT中,Yes和No按钮标签是用我的语言翻译的,而在JFace中并非如此。 任何想法? 我引用的jar是swt 3.8.0,jface 3.8.0,以及jface依赖项core.commands 3.6.1和equinox.common 3.6.100。

org.eclipse.swt.SWTException:从表刷新中“处理小部件”

该应用程序是基于Eclipse 3.6的RCP(因此jface版本3.5.2)在Windows 7上运行。 我有一个包含TableViewer的自定义View类,并在其上调用refresh() 。 有时,但不是经常导致下面的堆栈跟踪。 它是从UI线程中调用的。 我怀疑问题是其他代码将支持列表更改为表,但执行此操作的任何代码也在syncExec或asyncExec方法中运行,所以我不明白它是如何在更改之间的同步问题表项和刷新查看器。 我有什么想法可以防止这种情况发生? !ENTRY org.eclipse.jface 4 2 2010-10-20 09:22:06.140 !MESSAGE Problems occurred when invoking code from plug-in: “org.eclipse.jface”. !STACK 0 org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:3884) at org.eclipse.swt.SWT.error(SWT.java:3799) at org.eclipse.swt.SWT.error(SWT.java:3770) at org.eclipse.swt.widgets.Widget.error(Widget.java:463) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:336) at org.eclipse.swt.widgets.Widget.getData(Widget.java:521) at org.eclipse.jface.viewers.AbstractTableViewer.setSelectionToWidget(AbstractTableViewer.java:921) at org.eclipse.jface.viewers.StructuredViewer.setSelectionToWidget(StructuredViewer.java:1711) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1399) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1353) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1455) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:537) at […]

SWT / JFace还是Eclipse RCP?

选择Eclipse Rich Client Platform作为我的应用程序的基础的原因是什么,而不仅仅是使用SWT / JFace?

具有可变行高的SWT表:在Linux上运行,但不在Mac / Windows上运行

问题:我需要一个具有可变行高的SWT表(JFace TableViewer)。 事实上,我在我的开发机器(运行Ubuntu 10.10)上解决了这个问题。 不幸的是,这在Windows和Mac上都不起作用。 最初,我以为我没有正确使用这些库。 但到现在为止,我担心我想做的事情在Windows上根本不可能。 我希望有人能说服我。 重现:我没有在这里提供我的代码,而是构建了一个重现问题的最小程序。 我从下面的Snipplet开始: http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/examples/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/ Snippet049StyledCellLabelProvider.java 我修改了update()方法,为目录生成两行文本,为文件生成一行(模拟具有可变行高的环境): … if(file.isDirectory()){ cell.setText(styledString.toString()+“\ n” + styledString.toString()); cell.setImage(IMAGE1); } else { cell.setImage(IMAGE2); } … 这在Linux上可以正常工作,但在Windows上,所有行都具有相同的高度。 具体来说,只能看到一行。 接下来,我试图通过使measure()更加智能来帮助SWT。 所以我重写了这样的measure(): protected void measure(事件事件,对象元素){ if(((File)element).isDirectory()){ event.height = 32; } else { event.height = 16; } super.measure(事件,元素); } 结果:所有行都具有高度32.同样,这在Linux上按预期工作。 我担心,在Windows上,所有行的高度必须相同。 这对我来说是一个噱头。 任何人都能证实这一点,甚至更好,提供一种解决方法吗? 谢谢!