显示TableViewer不符,但在矩阵了
-
09-09-2019 - |
题
我用的 TableViewer 显示信息在一个表中。用户可以选择一所示的选项中选择一个线表。
我想创建一个表在矩阵的形式,其用户不仅可以选择的路线。它应该是可选择的每一个项目表,像第2行列3.对于每一个项目选择一种行动来处理这个项目,因为它是在TableViewer.
我现在我可以添加CellModifier和CellEditors线的列表,但基准的行动总是线的对象,而不是选择的表项.
没有人有一个例子如何创建这样一个矩阵内部的复合?我可以创建它通过设置一个GridLayout和添加组件在一环,但是比我的问题,当我想要重新复合的新的儿童。该TableViewer并已经有这样的处理,所以我不想实施它。
解决方案
我有同样的问题一段时间以前只有这样,我找到了解决,它是注册鼠监听器在他表件相关的表格观察者。
MouseListener columnSelectionMouseListener = new ColumnSelectionMouseListener();
getViewer().getTable().addMouseListener(columnSelectionMouseListener);
public class ColumnSelectionMouseListener implements MouseListener {
private TableColumn selectedColumn;
@Override
public void mouseDoubleClick(MouseEvent e) {
// Nothing to do here
}
@Override
public void mouseDown(MouseEvent e) {
table = (Table) e.widget;
TableItem item = table.getItem(new Point(e.x, e.y));
for (int i = 0; i < table.getColumnCount(); i++) {
TableColumn column = table.getColumn(i);
Rectangle bounds = item.getBounds(i);
if (bounds.contains(e.x, e.y)) {
selectedColumn = column;
}
}
}
@Override
public void mouseUp(MouseEvent e) {
// Nothing to do here
}
public TableColumn getSelectedField() {
return selectedColumn;
}
}
然后,例如在观众的选择监听,你可以要求鼠听这柱是选择的时候老鼠已经被压,并结合,与所选择的路线,来自观察者的选择以执行适当的行动。
希望这可以帮助。
Manu
其他提示
也许下JFace段将有助于:Snippet058CellNavigationIn34
国际非政府组织
不隶属于 StackOverflow