我正在创建一个SWT应用程序,其中包含两个TreeViewers和一个TableViewer。
TableViewer包含每一行中的图像,这些图像指示TreeViewer该行中日期的某些内容。
但是,问题是TableViewer中的图像与TreeViewer中的行没有正确地对齐。我有什么办法确保他们的行保持完全平直吗?
谢谢
添加了

发布于 2013-07-22 20:32:43
您可以通过重写“测量方法”的行为(即向Listener添加一个SWT.MeasureItem )来改变行高度的测量方式。有一个很好的例子,这里。只需使用您在TreeViewer中使用的图标的高度,再加上一些边框像素即可。
以下是重要的代码部分:
Display display = new Display();
Shell shell = new Shell(display);
shell.setBounds(10,10,200,250);
final Table table = new Table(shell, SWT.NONE);
table.setBounds(10,10,150,200);
table.setLinesVisible(true);
for (int i = 0; i < 5; i++) {
new TableItem(table, SWT.NONE).setText("item " + i);
}
table.addListener(SWT.MeasureItem, new Listener() {
public void handleEvent(Event event) {
int clientWidth = table.getClientArea().width;
event.height = event.gc.getFontMetrics().getHeight() * 2;
event.width = clientWidth * 2;
}
});
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();https://stackoverflow.com/questions/17731969
复制相似问题