この「公式」SWTスニペットは、少なくとも私のマシンでは、やりたいことを実行します。垂直スクロールで同期が外れることはありません。しかし、価格は 2 番目のスクロールバーです。これを防ぐためSWT.NO_SCROLL
に、左側のテーブルのコンストラクターにスタイルを追加できます。
これを改善するには、両方のテーブルにリスナーを追加する必要があります。これによりSWT.Traverse
、ユーザーがキーを使用してナビゲートした場合、次のように同期されます。
leftTable.addListener(SWT.Traverse, new Listener() {
public void handleEvent( Event event ) {
rightTable.setTopIndex(leftTable.getTopIndex());
}
});
別の Table 実装を使用するつもりはありません。SWT の最大の利点である、各 OS で「適切」に見えるネイティブ ウィジェットを使用するという利点が失われるからです。とにかくそれをやりたいのであれば、Nebula プロジェクトのGridはアルファ タグが示すよりもはるかに成熟しています。ただし、それがあなたが望むことを行うことができるかどうかはわかりません。