この問題をWebで検索した後、数時間を費やした後、私はあなたの助けが必要だと決めました。JavaFX TableColumnsのヘッダーが垂直スクロールバーのためにセルと整列していない
問題は、このトピックのようになります。Javafx: Tableview header is not aligned with rows
無回答が提供されていないし、また、私が思うに、私の場合は若干異なります。
私は再利用されたCellFactoriesとCellValueFactoriesを持つTableViewを適切に設定してください。データによると、すべてのことが私が意図した通りに100%動作します。しかし、私のビューが示すことができるより多くの行をテーブルに取り込んだら、自然に垂直スクロールバーを表示し始めました。その瞬間から(最初のスクリーンショットを参照)、列ヘッダーは列ともう整列しませんでした。それは正確に幅の分布を歪めたスクロールバーの幅であるように思えます(私はConstraintResizePolicyをいくつかの固定幅の列で、残りは計算された幅に頼ります、それ以外は完璧に動作します)。
マウスホイールでスクロールしたり、エントリをクリックしたり、タブにフォーカスを合わせたり、ウィンドウ/ビューのサイズを変更したりすると、ヘッダーが所定の位置にスナップします(2番目のスクリーンショット参照)。
最初に投稿されたトピックに基づいて、私はこれがバグだと思うので、私は解決策(存在しないかもしれない)だけでなく、回避策を探しています。私が試した:
- table.scrollTo()
- table.scrollToColumnIndex()
- table.layout()
- table.requestFocus()
- table.requestLayout()
- テーブル.refresh()
私はこれらのすべてが意味をなさないとは思っていますが、まだ試してみましたそのうちの1人は、アプリケーションの起動時に列見出しを列に合わせるようにしました。
すべての提案が歓迎されます。 私はここでコードを共有することは役に立たないと思っていますが、何か具体的にしたいのか尋ねます。ビューはSceneBuilder 8で構築され、アンカーパネル、中央のTableView、6つのTableColumnsで構成されています。
ありがとうございました!
編集のための@ ganchito55ありがとうございます。 –