Tag: swt

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 […]

将AWT应用程序转换为SWT / JFace

我目前正在考虑将一个中小型项目从AWT转换为SWT,尽管Swing还没有完全脱离图片。 我正在考虑将主窗口转换为SWT_AWT桥接对象,但我不知道这个工作的语义如何。 之后,我计划更新对话框的对话框,但不一定在一个版本中。 这可能吗? 有人做了这样的转换,可以给我一些提示吗? 那里甚至可能有教程吗? 甚至可能有一个工具可以自动化部分内容吗? 我试过谷歌搜索,但无济于事。 更新:另外一件事是:目前,这是一个netbeans项目。 可能有所帮助,我不知道。

SWT标签大小未正确更新

我是Java / SWT的新手。 我在使用SWT标签时遇到了一些麻烦。 当我更新标签上的文本时,其大小未正确更新(标签被剪切,与原始大小相关)。 但是,如果我在对话框中执行非常小的resize,则会正确更新大小。 基本上,我使用默认文本创建标签,然后,当我加载数据时,我使用真实文本更新标签,该标签比原始文本更大。 我试着没有运气就调用了label.update()和label.redraw() 。

SWT组件仅用于从工作区选择文件

我使用SWT和Eclipse的插件。 我只需要从工作区选择文件。 我创建了用于在工作区中选择目录的组件,用于在文件系统中选择文件的组件,但是我没有找到用于从工作区选择文件的组件。 现在我正在使用org.eclipse.swt.widgets.FileDialog并设置filtersetFilterPath(Platform.getLocation().toOSString()) 。 但是用户可以选择不是来自工作区的其他文件。 他们应该只能在工作区内设置文件。

java SWT透明复合背景

我有复合对象 Composite composite = new Composite(shell, SWT.NONE); composite.setBounds(new Rectangle(10,10,100,100); 如何使这个复合材料具有透明背景? 我需要在这个复合材料中放置小部件(非透明)…

如何在Java应用程序中使用系统的上下文菜单?

我想显示文件搜索的结果。 我想为文件选择启用上下文菜单,这将是系统的上下文菜单。 例如,如果用户右键单击Windows中的文件 – 我想显示带有选项的弹出菜单: 打开 打开用… 编辑 发送至… 复制 切 等等… 并且,如果可能 – 将根据操作系统自动生成此菜单。 如果这不可能或太复杂 – 我想至少启用“磁盘上的定位”选项,该选项将在文件的文件夹中打开Windows资源管理器(或其他系统中的等效项),然后选择该文件。 该应用程序使用SWT以Java(JDK 7)编写。

SWT图像到/从字符串

我试图将SWT图像转换为字符串,反之亦然: 字符串: Display display = new Display(); final Image image = new Image(display, “c:\test.png”); // Looks good showImage(image ,600,400); ImageData imageData = testImage.getImageData(); byte[] data = imageData.data; String imageString = new String(Base64.encode(data)); 回到图片: byte[] decode = Base64.decode(imageString.getBytes()); decode.toString(); Image c_img = new Image(Display.getCurrent(), stringToInputStream(decode.toString())); // Throws exception. showImage(c_image ,600,400); 哪里: private static void showImage(final Image […]

如何组合和validationswt对话框的两个文本字段?

我有另一个问题。 我在一个文本字段中使用ModifyListener来激活和取消激活swt对话框中的OK按钮。 它很棒。 现在我想为另一个文本字段添加ModifyListener。 我想只有在两个文本字段中只有一个字符时才激活OK按钮。 这是两个字段的代码: descriptionText.addModifyListener(new ModifyListener(){ public void modifyText(ModifyEvent e) { Text text = (Text) e.widget; if (text.getText().length() == 0) { getButton(IDialogConstants.OK_ID).setEnabled(false); } if (text.getText().length() >= 1) { getButton(IDialogConstants.OK_ID).setEnabled(true); } } }); } 第二个领域: ccidText.addModifyListener(new ModifyListener(){ public void modifyText(ModifyEvent e) { Text text = (Text) e.widget; if (text.getText().length() == 0) { getButton(IDialogConstants.OK_ID).setEnabled(false); } […]

SWT:单一与多显示

SWT旨在支持多个Display实例,每个实例都有自己的事件循环。 出于何种目的,这是有用的还是必需的? 是不是一个Display实例(例如Display.getDefault()足够了?

用户点击菜单项后如何保持SWT菜单打开?

我有一个带有Check Box菜单项菜单的Eclipse RCP / SWT应用程序。 我希望能够在点击其他地方关闭菜单之前检查/取消选中多个项目。 但是,默认的SWT行为是单击后关闭菜单。 我已经实现了以下非常黑客的解决方案,但它肯定不优雅,并且可能无法在所有平台上或在所有情况下正常工作。 所以我对一种更简单的技术非常感兴趣。 下面的代码应该在eclipse中编译和运行开箱即用(对于长度道歉,它是我可以创建的最短的自包含示例): import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuListener2; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.Shell; public class MenuTest { public static void main( String[] args ) { // create a SWT Display and Shell final Display […]