12

アイデアは、N 列の TableView で、水平スクローラーを使用しても最初の M 列が常に表示されるようにすることです。

私の要件に近い唯一のものは、このBinding two tableviews such that they scroll in syncです。2 つのテーブルを並べて配置するというアイデアは、私の観点では最善ではありません。

1) 列の並べ替えは、2 つのテーブル間で部分的に独立しています。同じ observableList を使用すると、両方のテーブルで行が並べ替えられますが、少なくとも 1 つの列が同じテーブルにない複数の列で並べ替えを行うことはできません
2 ) マウスホイールまたは矢印キーによる同期スクロールはありません

おそらく、EventHandlers と Listener を使用してこのような問題に対処できることはわかっていますが、1 つのテーブルのみを使用できることを望んでいます。

ですから、問題は次のとおりです。TableView または TableColumns に、私が探している動作をさせるための構成可能なプロパティはありますか?

4

5 に答える 5

4

javafx テーブル ビューで列をフリーズできます。カスタム テーブル列クラスを作成する必要があります。このクラスには 2 つのメソッドがsetFixedありisFixed、いくつかの列を固定するために使用されます。

これとは別に、独自に作成する必要があります

  1. TableViewskin

  2. TableHeaderRowgetRootHeader()- 基本的にこのクラスでは、メソッドをオーバーライドする必要があります

  3. NestedTableColumnHeader- このクラスでは、メソッドをオーバーライドlayoutChildren()し、新しいメソッドを追加してレイアウトしますfixedColumns
  4. VirtualFlow
  5. TableView- オーバーライドし、新しいものと 1 つをcreateDefaultSkin()追加booleanProperty showColumnHeaderObservableArrayListfixedTableColumn
  6. TableRow- オーバーライドcreateDefaultSkin()
  7. TableRowSkinBaselayoutChildren()-固定列を処理するメソッドをオーバーライドします。
于 2016-05-30T06:24:59.720 に答える
2

ですから、問題は次のとおりです。TableView または TableColumns に、私が探している動作をさせるための構成可能なプロパティはありますか?

どうやらそうではありませんが、JavaFX Jira でのこの動作に対する機能要求があります (表示するには登録が必要です)。

https://javafx-jira.kenai.com/browse/RT-19454

投票することをお勧めします。:^)

于 2013-08-28T20:36:43.677 に答える
1

JavaFX にはこの機能がありません。ControlsFXの SpreadsheetViewを確認してください。

于 2015-01-18T05:49:26.867 に答える