Articles of swt

如何让SWT浏览器控制在Linux上使用Mozilla / Firefox而不是WebKit(Ubuntu 14)

我想让SWT 4.4.2浏览器在Linux(Ubuntu 14.o4 LTS)上使用Mozilla,每当我运行我的应用程序SWT使用webkit。 任何想法如何让SWT使用Mozilla? 作为一个例子,我正在使用SWT的以下代码来打开embedded式浏览器。 Linux的Ubuntu版本 public class DisplayMozillaVersion { public static void main(String[] args) { Device.DEBUG = true; Display display = new Display(); Shell shell = new Shell(display); System.out.println(">>>Snippet creating SWT.MOZILLA-style Browser"); try { new Browser(shell, SWT.MOZILLA); System.out.println(">>>succeeded"); } catch (Error e) { System.out.println(">>>This failed with the following error:"); e.printStackTrace(); System.out.println("\n\nSnippet creating SWT.NONE-style […]

SWT ExpandListener在Linux上发生崩溃之前执行

这是一个简单的可执行代码,显示了这个问题。 当使用ExpandBar时,所需的结果是在崩溃或展开时调整窗口的大小。 它在Mac上正常工作,但不在Linux上。 它看起来像ExpandListener在崩溃/展开实际发生之前调用,因此pack()的大小调整不正确。 asynchronous执行只是一个绷带,它可以在Mac上使用,但这在Linux上不起作用。 import org.eclipse.swt.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.events.ExpandEvent; import org.eclipse.swt.events.ExpandListener; public class ExpandBarExample { public static void main(String[] args) { Shell shell = new Shell(SWT.DIALOG_TRIM | SWT.MIN | SWT.APPLICATION_MODAL); shell.setLayout(new FormLayout()); shell.setText("Expand Bar"); final ExpandBar bar = new ExpandBar(shell, SWT.NONE); FormData fd = new FormData(); fd.top = new FormAttachment(0); fd.left […]

Eclipse Linux中的Eclipse外观和感觉configuration

我在Ubuntu 10.04中遇到了新安装的Eclipse的问题。 工具栏和选项卡太宽,文本或图像上方和下方都有很多空的空间,所以我希望缩小它们的范围。 它看起来如何http://img.zgserver.com/java/vpccyc.png 在谷歌快速查找没有给出答案如何configuration它,所以我希望有人已经处理它。 这与任何GTK主题都是一样的,所以我想SWTconfiguration有一些问题。 在此先感谢您的帮助。 PS前段时间也有类似的问题 ,最后提出了使用Clearlook Compact GTK主题的build议,但是我不认为这是一个很好的解决scheme。 我只是喜欢Ambiance的主题,并希望有一种方法可以使SWT应用程序看起来不错,而无需切换到另一个主题。

如何计算标签的最大适配字体大小?

我有一个包含Label的Canvas 。 我想根据canvas大小设置此标签的字体大小。 我们如何做到这一点? 编辑:“包含”意味着,canvas和标签边界是相同的。 编辑2:我有这个Swing,但我不能将其转换为SWT; Font labelFont = label.getFont(); String labelText = label.getText(); int stringWidth = label.getFontMetrics(labelFont).stringWidth(labelText); int componentWidth = label.getWidth(); double widthRatio = (double)componentWidth / (double)stringWidth; int newFontSize = (int)(labelFont.getSize() * widthRatio); int componentHeight = label.getHeight(); int fontSizeToUse = Math.min(newFontSize, componentHeight); 编辑3:这是我的字体大小计算器类的标签 public class FitFontSize { public static int Calculate(Label l) { Point […]

SWT Filedialog打开到主文件夹

我想打开FileDialog窗口进入用户主文件夹(即/ home / user或/ Users / unsername) 我读取用户主文件夹,使用System.getProperty: String homefolder = System.getProperty(user.home); variables包含正确的主文件夹。 但是,当我在FileDialog中设置filterpath时,它将打开(在Linux中)只有/ home级别不进入用户主目录。 这是源代码: FileDialog dialog = new FileDialog(shell); dialog.setText("Choose a certificate"); String platform = SWT.getPlatform(); String homefolder = System.getProperty("user.home"); dialog.setFilterPath(homefolder); 任何想法? 这里有一个截图:

Ubuntu:SWT应用程序无法加载GTK库

我已经提供了Linux SWT jar,并在Eclipse中打包了我的应用程序,将swt.jar包含在我的应用程序的jar中。 当我尝试在Ubuntu上运行它时,出现以下错误文本(仅发布原因): 引起:java.lang.UnsatisfiedLinkError:无法加载SWT库。 原因: java.library.path中没有swt-pi-gtk-4234 java.library.path中没有swt-pi-gtk /home/nifty/.swt/lib/linux/x86/libswt-pi-gtk-4234.so:libgtk-x11-2.0.so.0:无法打开共享目标文件:没有这样的文件或目录 无法加载库:/home/nifty/.swt/lib/linux/x86/libswt-pi-gtk.so 这表明它不能加载一个GTK文件,但除此之外,我不知所措。 我只使用Ubuntu来testing我的应用程序,所以我知道很less。

如何在按“*”时停止扩展无限的SWT树

我的应用程序中有一个包含无限数据结构的SWT树。 扩大一个项目,我产生了自己的孩子。 在Windows上,用户可以按“*”,触发“展开所有后代”动作,我的应用程序挂起。 当用户按“*”时有两种可以接受的行为: 展开所选元素的所有子元素,但仅限于下一级 没做什么 在这两种情况下,我仍然需要能够根据需要扩展项目(通过单击[+]图标或按“+”),因此限制树的深度不是一个解决scheme。 有没有另外一种方法,我可以在不修改SWT类的情况下实现上述任何一种?

防止在SWT中的Windows上滚动下拉列表选项

我的Java SWT应用程序中的一个下拉列表中有8个固定的选项。 当我点击它只有5个第一选项是可见的,我不得不滚动列表下来查看其余。 有没有办法强制它使所有的选项可见,而不必向下滚动? 还有另一个类似的.NET应用程序具有相同的下拉列表和相同的选项,他们都可见,而无需向下滚动!

SWT表格标题中的&符号的解决方法

SWT Table标题中的“&”符号将不会显示,是否有已知的解决方法? 我必须在我的应用程序中显示一个&符号,我正在寻找一个解决方法… https://bugs.eclipse.org/bugs/show_bug.cgi?id=154904 如果你不想阅读完整的atricle,只需按照这个例子 public class TableWidget { Display d; Shell s; TableWidget() { d = new Display(); s = new Shell(d); s.setSize(250, 200); s.setText("A Table Shell Example"); s.setLayout(new FillLayout()); Table t = new Table(s, SWT.BORDER); TableColumn tc1 = new TableColumn(t, SWT.CENTER); TableColumn tc2 = new TableColumn(t, SWT.CENTER); TableColumn tc3 = new TableColumn(t, SWT.CENTER); […]

SWTcanvas无法在Windows上重绘,但在Linux上工作

this.canvas = new Canvas(shell, SWT.NO_BACKGROUND); 我正在使用一个PaintListener: this.canvas.addPaintListener(new PaintListener() { @Override public void paintControl(PaintEvent e) { // Draw images synchronized (imageMarks) { for (ImageMark mark : Whiteboard.this.imageMarks) { Image image = Whiteboard.this.getImage(mark.id); Point position = ScaledPoint.toSWTPoint(Whiteboard.this.getCanvasSize(), mark.getPosition()); Point bounds = mark.getUnscaledBoundaries(Whiteboard.this.getCanvasSize()); e.gc.drawImage(image, 0, 0, image.getBounds().width, image.getBounds().height, position.x, position.y, bounds.x, bounds.y); } } // Draw pencil marks […]