Tag: swt

在Eclipse / RCP中定位工具栏

我正在研究我的小型RCP应用程序,它需要一个自定义的透视切换器来控制用户可以访问的视图。 所以我在这里,尝试添加一个带有几个按钮的工具栏来切换视角。 我认为控制这些东西的最好方法是在ApplicationActionBarAdvisor中添加第二个工具栏,它会调用我的动作/命令来切换视角。 所以假设我在fillCoolBar方法中创建了第二个ToolBarContributionItem,它看起来像这样: protected void fillCoolBar(ICoolBarManager coolBar) { IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); ToolBarContributionItem mainBar = new ToolBarContributionItem(toolbar, “main”); coolBar.add(mainBar); toolbar.add(openViewAction); toolbar.add(newConnectionAction); //Custom perspective switcher bar IToolBarManager perspectives = new ToolBarManager(SWT.FLAT | SWT.RIGHT); ToolBarContributionItem perspectiveBar = new ToolBarContributionItem(perspectives, “perspectives”); coolBar.add(perspectiveBar); } 任何想法如何我可以对齐工具栏,使它在窗口的右侧? 我很想把这个职位硬编码。 问候,迈克尔

Swtcombobox名称/密钥对

我希望文本说一件事,但有价值说另一件事 文字键 但它只需要一个字符串来添加项目。 Java程序员通常如何在combobox中存储文本/ id对

Java SWT应用程序 – 带到前面

我目前正在Windows 7上开发一个SWT java应用程序。通常,应用程序将被最小化,并且当串行端口上有事件时,应用程序应该最大化自身。 以下代码执行最大化部分。 private void bringToFront(final Shell shell) { shell.getDisplay().asyncExec(new Runnable() { public void run() { if(!shell.getMaximized()){ shell.setMaximized(true); } shell.forceActive(); } }); } 但有时SWT应用程序在另一个应用程序后最大化。 例如,如果我在全屏模式下运行powerpoint,则最大化应用程序落后于powerpoint演示。 我想让它最大化并带到所有其他应用程序的前面。 谁能帮我?

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复合 – 重绘问题

我有一个复合元素,最初有一个Label。 现在我调用dispose(标签)并在同一个容器(复合榆树)中创建另一个标签,但我没有看到新文本。 它让我质疑如何在复合上启用重绘,以便新标签(或我可能创建的任何其他组件)将代替旧标签。 这是我的代码(分为unit testing重绘复合) private Label createLabel( Composite parent) { Label label = new Label(parent, SWT.NONE); label.setAlignment(SWT.CENTER); label.setLayoutData( new GridData( SWT.CENTER, SWT.CENTER, true, true) ); return label; } private void changeText() { assert testCell != null : “Please initialize test cell”; testCell.getChildren()[0].dispose(); Label l = createLabel(testCell); l.setText(“New TexT”); testCell.redraw(); } private void draw() { […]

拖放不在Mac上工作

我试图将文件从Finder拖到我的SWT应用程序中。 在Windows和Ubuntu上,以下代码可以工作: public class DndTest { public static void main(final String[] args) { final Display display = new Display(); final Shell shell = new Shell(display, SWT.DIALOG_TRIM); shell.setText(“Drag & drop test”); shell.setSize(200, 200); final FormLayout layout = new FormLayout(); shell.setLayout(layout); final Label lbl = new Label(shell, SWT.NORMAL); lbl.setAlignment(SWT.CENTER); lbl.setText(“Drop files here”); final FormData layoutData = new […]

Java中是否存在用于fieldset(HTML)的等价物?

Java中的元素(即Swing / AWT或SWT)是否等同于HTML元素fieldset ?

将SWT Composite嵌入到C#应用程序中

我有一个使用SWT作为其widget工具包的Java应用程序。 我还有一个Windows C#应用程序。 我想要一种方法将SWT Composite绘制到这个C#应用程序中。 我可以想到两种方法: 句柄:由于SWT基于本机窗口工具包,似乎应该有一种方法在C#应用程序中创建一个Composite,将本机指针传递给Java应用程序,然后从那里控制Composite。 OLE:由于SWT肯定可以使用OLE组件,也许它还有一种方法可以将自己呈现为OLE组件? 任何人都有关于如何实现这一目标的任何提示? 我并不害怕Java和C#在启动时之间的复杂通信,但我真的希望能够在设置后无缝地从Java控制Composite。

项目展开时自动调整列大小

在具有多列的树中,如何在展开/折叠和数据更新时将列重新调整为内容大小? 表的类似问题的解决方案不起作用。 与…一样: tree.addListener(SWT.Collapse, new Listener(){ @Override public void handleEvent(Event e) { expandAndResize(false, (TreeItem) e.item); } }); tree.addListener(SWT.Expand, new Listener() { @Override public void handleEvent(Event event) { expandAndResize(false, (TreeItem) event.item); } }); private static void expandAndResize(Boolean expand_, TreeItem item_) { System.out.println( (expand_?”Expanding”:”Collapsing”) + “item={” + item_ + “}”); item_.setExpanded(expand_); System.out.println(” Resizing columns”); resizeTree(item_.getParent()); } private […]

SWT:如何为文本字段重新创建默认上下文菜单

我需要在SWT中的文本控件的默认上下文菜单中添加一些项目,但已经发现我无法修改此菜单并且必须从头开始创建一个新项目。 但是如何模拟默认function撤消,剪切,复制,粘贴,删除? 我真的必须为自己重新实现所有这些剪贴板的东西吗? 我甚至不知道如何访问控件的撤消历史记录。 是否有一些可能是肮脏的黑客来模仿实现function的密钥代码?