8

SWTベースのGUIを備えたJavaデスクトップアプリには、いくつかの行が複数の列にまたがる必要があるテーブルがあります。これは、この公式SWTスニペットに示されているアプローチで解決されました:Snippet239.java

ただし、ずっと後になって、デフォルトのAmbiance / Radianceテーマを使用したUbuntuでのこのアプローチには大きな問題があることが発見されました。複数の列にまたがるセルの場合でも、列間には常に垂直線があります。これは、次のスクリーンショットに示されています。

Ambiance/RadianceをテーマにしたUbuntu

ClearlooksをテーマにしたUbuntu

ご覧のとおり、最初のスクリーンショットでは、列1と列2の間に縦線があります。これらの線を取り除く方法を知っている人はいますか?

私たちはすでに次のことを試しました:

  • Table.setLinesVisible(false):機能しません。垂直線が消えません。
  • 所有者描画ベースのラベルプロバイダーを使用して、これらの垂直線を描画します。機能しません。垂直線は、ラベルプロバイダーによって描画されるすべてのものの上に描画されるようです。
  • ペイントリスナーをテーブルにアタッチして、垂直線を描画します。テーブルをスクロールしたり更新したりするたびにグリッチがたくさん発生するため、機能しません。
  • Nebulaプロジェクトには、セルが複数の列にまたがることができるグリッドウィジェットがあり、テーブル全体が非ネイティブに描画されるため、垂直線に問題はありません。ただし、特定のテーマを持つ特定のプラットフォームでの垂直線の問題を修正するためだけに、テーブルをグリッドウィジェットに置き換える努力を正当化することはできません。また、グリッドウィジェットはプレリリースのアルファバージョンのようです。

私たちがすでに試したことに基づいて、残っている唯一の方法はSWTのプラットフォーム固有の内部をいじくり回すことだと思いますが、そのようなものからどこから始めればよいのかさえわかりません。

4

1 に答える 1

0

この問題は、Table複数の列をエミュレートする単一の所有者描画列でを使用することで解決しました。

于 2012-08-12T22:52:32.953 に答える