私は2つとその間にあるSWTアプリケーションを作成しTreeViewers
てTableViewer
います。
のTableViewer
各行には、 のその行の日付に関する何かを示す画像が含まれていますTreeViewer
。
ただし、問題は、 のイメージがTableViewer
の行と正しく整列していないことTreeViewer
です。行が正確に水平に保たれるようにする方法はありますか?
ありがとう
追加した
私は2つとその間にあるSWTアプリケーションを作成しTreeViewers
てTableViewer
います。
のTableViewer
各行には、 のその行の日付に関する何かを示す画像が含まれていますTreeViewer
。
ただし、問題は、 のイメージがTableViewer
の行と正しく整列していないことTreeViewer
です。行が正確に水平に保たれるようにする方法はありますか?
ありがとう
追加した
「測定方法」の動作をオーバーライドすることで、行の高さを測定する方法を変更できます。つまり、 に を追加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();