将按钮插入 JFace 表

发布于 2024-12-15 03:42:43 字数 47 浏览 1 评论 0原文

如何将 SWT Button 控件插入 JFace TableViewer 中?

How can I insert a SWT Button control into JFace TableViewer ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

錯遇了你 2024-12-22 03:42:43

给出的答案是一个很好的方法,可以在表格内部或外部使用自定义绘图实现您自己的按钮。但是,您可以将 SWT 控件放入 JFace 表中。

http://www.java2s.com/Code/Java/SWT -JFace-Eclipse/Place ArbitrarycontrolsinaSWTtable.htm

用于构建包含链接提供的组合框、文本字段和按钮的列的表的解决方案是:

Table table = new Table(shell, SWT.BORDER | SWT.MULTI);
table.setLinesVisible(true);
for (int i = 0; i < 3; i++) {
  TableColumn column = new TableColumn(table, SWT.NONE);
  column.setWidth(100);
}
for (int i = 0; i < 12; i++) {
  new TableItem(table, SWT.NONE);
}
TableItem[] items = table.getItems();
for (int i = 0; i < items.length; i++) {
  TableEditor editor = new TableEditor(table);
  CCombo combo = new CCombo(table, SWT.NONE);
  editor.grabHorizontal = true;
  editor.setEditor(combo, items[i], 0);
  editor = new TableEditor(table);
  Text text = new Text(table, SWT.NONE);
  editor.grabHorizontal = true;
  editor.setEditor(text, items[i], 1);
  editor = new TableEditor(table);
  Button button = new Button(table, SWT.CHECK);
  button.pack();
  editor.minimumWidth = button.getSize().x;
  editor.horizontalAlignment = SWT.LEFT;
  editor.setEditor(button, items[i], 2);
}

The answer given is nice a nice way to implement your own buttons with custom drawings, in or outside the a table. However, you can put SWT controls in JFace Tables.

http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/PlacearbitrarycontrolsinaSWTtable.htm

The solution for building a table with columns containing comboboxes, text fields, and buttons provided by the link is:

Table table = new Table(shell, SWT.BORDER | SWT.MULTI);
table.setLinesVisible(true);
for (int i = 0; i < 3; i++) {
  TableColumn column = new TableColumn(table, SWT.NONE);
  column.setWidth(100);
}
for (int i = 0; i < 12; i++) {
  new TableItem(table, SWT.NONE);
}
TableItem[] items = table.getItems();
for (int i = 0; i < items.length; i++) {
  TableEditor editor = new TableEditor(table);
  CCombo combo = new CCombo(table, SWT.NONE);
  editor.grabHorizontal = true;
  editor.setEditor(combo, items[i], 0);
  editor = new TableEditor(table);
  Text text = new Text(table, SWT.NONE);
  editor.grabHorizontal = true;
  editor.setEditor(text, items[i], 1);
  editor = new TableEditor(table);
  Button button = new Button(table, SWT.CHECK);
  button.pack();
  editor.minimumWidth = button.getSize().x;
  editor.horizontalAlignment = SWT.LEFT;
  editor.setEditor(button, items[i], 2);
}
酒绊 2024-12-22 03:42:43

你不能。更一般地说,您不能在 SWT 中的表和树中插入任何小部件,因为并非所有平台都支持它。你可以做的是

  1. 对按钮在正常状态和单击状态下的屏幕截图进行两张;

  2. 将正常屏幕截图作为图像放入表格中;

  3. 处理 TableItem 上的点击。

以下是复选框的示例: http://tom- eclipse-dev.blogspot.com/2007/01/tableviewers-and-nativelooking.html

You can't. More generally, you can't insert any widgets in tables and trees in SWT, because not all platforms support it. What you can do instead is

  1. Take two screenshots of the button in normal and clicked states;

  2. Put the normal screenshot in table as an image;

  3. Handle clicks on the TableItem.

Here is an example for checkboxes: http://tom-eclipse-dev.blogspot.com/2007/01/tableviewers-and-nativelooking.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文