Tag: swt

SWT – 表/combobox

如何将combobox添加到表格中的特定列? 我希望我的最后一个专栏有一个包含3个选项的combobox(是,否,两者)。 我将包含我的表格代码,这样您就可以更好地告诉我新代码是如何进行的。 ////////////////////////////////////////////////////////////////////////// // createTableViewer() // ////////////////////////////////////////////////////////////////////////// private TableViewer createTableViewer(Composite parent) { viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); createColumns(parent, viewer); Table table = viewer.getTable(); table.setHeaderVisible(true); table.setLinesVisible(true); // Layout the viewer GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); viewer.setContentProvider(new ArrayContentProvider()); viewer.setInput(AplotDataModel.getInstance().getArrayData()); viewer.getControl().setLayoutData(gridData); return viewer; } ////////////////////////////////////////////////////////////////////////// // […]

我怎样才能有一个可滚动的禁用文本?

我的文字声明为, Text text= new Text(parent, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL | SWT.WRAP); 在某些情况下应该禁用它。 但是,当我这样做 text.setEnabled(假); 文本的滚动条也被禁用,我无法完全看到文本中的值。 我的文本字段不能只读。 在某些情况下它应该是可编辑的。 我知道Text中的setEditable()方法,但我希望具有与禁用文本时相同的行为,即背景颜色更改,没有闪烁的光标(插入符号),无法执行鼠标单击以及文本无法选择等等 通过这样做,我能够改变背景颜色 text.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND)); 但我无法禁用光标,文本选择和鼠标单击。 有没有办法让滚动条对禁用的文本保持活动状态?

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

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

支持Windows / Mac和32bit / 64bit上的SWT

我目前正在使用DJProject将浏览器放入我的Java Swing应用程序中。 DJProject使用SWT运行,我对SWT的经验很少。 我想支持32位和64位的Windows和Mac。 我知道每个平台都有一个swt.jar文件。 我将所有4个swt.jar库添加到我的类路径中作为主应用程序的库。 我的问题是,当我尝试在Mac上运行应用程序时,我得到错误: Exception in thread “main” java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM 我将如何在运行时自动告诉Java加载SWT库的正确变体。

如何在SWTcanvas上绘制选择框?

我有一个带有一些图像的SWT Canvas。 我希望我的用户通过单击,按住鼠标左键并通过移动鼠标打开选择框来选择图像的一部分。 作为视觉反馈,我想将选定的矩形显示为我图像上的透明覆盖。 问题是我不知道如何最好地实现这一目标? 有人可以给我一个暗示吗?

突出显示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 […]

尝试在Raspberry Pi上运行基于SWT的GUI

我已经在Windows上开发了Eclipse上的SWT GUI,现在我正在尝试将其移至Raspberry Pi。 我正在为Raspberry搜索SWT库。 我在RPi中使用Raspbian。 这是否意味着我需要ARMHF的SWT库? 如果是的话,我怎样才能将它导入我的程序,我可以在shell上编译和导出jar而不是Eclipe(因为RPi有512 MB,这还不足以高效运行Eclipse)? 谢谢

如何使用SWT TableViewer中的enter键向下导航

我有一个TableViewer ,当我按下回车键时,希望选择按下一个单元格,就像在MS Excel中一样。 我使用以下findSelectedCell实现了我自己的findSelectedCell 。 public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) { if (event.type == ColumnViewerEditorActivationEvent.KEY_PRESSED) { if (event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR) { ViewerCell nextCell = currentSelectedCell .getNeighbor(ViewerCell.BELOW, false); return nextCell; } } return null; } 只要我有ViewerCell.LEFT或ViewerCell.RIGHT这种方法就可以正常工作。 当我尝试ViewerCell.ABOVE或ViewerCell.BELOW nextCell实际设置为上方或下方的单元格,但在GUI中,选择保持在currentSelectedCell 。 findSelectedCell的API文档说: 返回: 下一个突出显示的单元格,如果采用默认实现,则为null。 例如,对PAGE_DOWN请求做出反应是不可能的 我不明白那句话是什么意思。 任何人都可以向我说明为什么不能将选择设置为低于或高于某个单元格?

SWT – 表查看器 – 隐藏列并从列中获取值

我正在尝试从表格中的数据创建一个arraylist。 我需要从可见列中获取值,但我还需要从表中不可见的列中获取值。 将SWT与表查看器一起使用,我不知道如何不在表中显示列。 我也不知道如何通过指定列名从表中提取数据。 我一直使用Swing,所以我一直使用Table Model Class。 在swing中,创建列,隐藏它们并从中获取数据非常简单。 这就是我在以前的Swing项目中完成的方法。 在我的表模型类中 : public String getColumnName(int column) { String s = null; switch (column) { case ITEMID_COL: { s = “ItemId”; break; } 那么getValueAt() public Object getValueAt(int row, int column) { Object o = null; try { switch (column) { case ITEMID_COL: { o = rds.get(row).rev.getItem().getStringProperty(“item_id”); break; […]