SWT:具有复制/粘贴功能的表
这可能是一个非常愚蠢的问题,但我在任何地方都找不到答案,有没有办法让用户能够突出显示 SWT 表中的行以及 ctrl+c 或右键单击+c 复制值?
我特别希望能够复制到 Excel 工作表中。
这就是我创建表的方式,
Table aTable = new Table(parent, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
aTable.setHeaderVisible(true);
aTable.setLinesVisible(true);
aTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
我已经看到有关使用 JTable 的信息,但没有看到有关 SWT 的信息。如果 JTable 是我唯一的选择,那么使用其中任何一个的缺点/优点是什么?
This maybe a really silly question but I just could not find the answer anywhere, is there any way for the user to be able to highlight rows in an SWT Table and either ctrl+c or right-click+c to copy the values?
I would specifically like to be able to copy into an excel sheet.
This is how I create the table,
Table aTable = new Table(parent, SWT.SINGLE | SWT.BORDER
| SWT.FULL_SELECTION);
aTable.setHeaderVisible(true);
aTable.setLinesVisible(true);
aTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
I have seen information about this using a JTable but nothing with an SWT. If JTable is my only option, then what would be the dis/advantages of using either?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以轻松地对其进行编码。
在表中添加一个按键侦听器并侦听 Ctrl+C 键。当按下 Ctrl+C 时,从表中获取选择,从每个 TableItem 中提取文本并形成制表符分隔字段/换行符分隔行字符串包含您的数据。然后将其放入剪贴板(请参阅 org.eclipse.swt.dnd.Clipboard#setContents,使用 TextTransfer 数据类型)。
就是这样 - 您的结果将可以粘贴到 Excel 中。
You can easily code it.
Add a key listener to your table and listen for Ctrl+C keys. When Ctrl+C is hit, get the selection from the table, extract text from each of the TableItems and form a tab-separated-fields/newline-separated-rows String containing your data. Then just put it into clipboard (see
org.eclipse.swt.dnd.Clipboard#setContents
, use TextTransfer data type).That is it - your result will be pasteable into Excel.
接受的答案很好,但由于开发人员更喜欢代码片段而不是文本,我会这样回答问题:
然后只需实现一个
getTextFromSelectedRows()
- 方法 - 基于表选择 - 返回 < code>String 应该添加到剪贴板。The accepted answer is good, but since developers prefer code snippets over text I'd answer the question this way:
Then just implement a
getTextFromSelectedRows()
-Method that - based on the table selection - returns theString
that should be added to the clipboard.