JAVAFX Scenebuilderで作成したTableViewの列を一部固定し、スクロールできないようにしたいです。
動き的にはこちら
調べたところ、過去の記事(こちら)に、
その機能はJAVAFXにはないとのことですが、現在も無いのでしょうか?
CSSなどでやり方がわかる方いましたら教えていただきたいです。
こちらの方が近いことを行っているように思えました
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
別案。
下記のような実装したことがあります。オトナの事情によりソースは提供できません。あしからず。
# 自分が欲しくなったら、個人的に実装するかもしれません。そのときはgithubをさがしてみてください :-p
## ここであらためてアナウンスまではしないとおもいますけど。
TableViewの列の左側、行の上部を固定できるようになると、「あれ、列の右側の固定は? 行の合計出したいんだけど」「あれ下の行の固定は..」と要望が増えるのは目に見えている。
てことで、右も下も固定できたたように「見えるように」してみる。
- 3x3のレイアウトで、9つのTableViewを配置する。GridPaneに嵌めるといいかもしれない。
- 以下、表記が面倒なので上を北、下を南、真ん中を中央とする。
- セルの幅と高さをそれぞれのTableViewで動的に一致させるのは面倒だった記憶があるので、固定とするのがよいかと。
- 本体用にObservableListをひとつ用意する。そして、西と中央と東のTableViewのitemとbindする。
- ヘッダ用にObservableListをひとつ用意する。そして、北西と北と北東のTableViewのitemとbindする。
- 降った用にObservableListをひとつ用意する。そして、南西と南と南東のTableViewのitemとbindする。
- TableViewは必要に応じてScrollBarを表示する。Scroll1. 本体用にObservableListをひとつ用意する。そして、西と中央と東のTableViewのitemとbindする。
Barを表示されると、位置が微妙にずれるので、ScrollBarのvisiblePropertyを監視して表示しようとしたら隠す。
1. TableViewのScrollBarはidを指定してlookup()で取得できる。
1. ScrollBarのidは、ScenicViewとかで調べる。 https://github.com/JonathanGiles/scenic-view
- ScrollBarが必要なら、縦は中央と東のあいだ、横は中央と南のあいだに置く。場所はお好きに。
- 中央のScrollBarと、自力でレイアウトしたScrollBarのvalueをbindする。
- 中央の縦ScrollBarのvalueを、西と東の縦ScrollBarとbindする。
- 中央の横ScrollBarのvalueを、北と南の横ScrollBarとbindする。
- ...まだあるかも。
9つのTableViewが必要ですが、扱うデータは、ヘッダ部、本体部、フッタ部のみっつ。縦横のスクロールがそれなりに連動できれば固定できたように見えるかと。
投稿2020/12/06 03:47
編集2020/12/06 03:49総合スコア4054
0
ベストアンサー
ControlsFX https://github.com/controlsfx/controlsfx 8.40.xの提供するTableViewには行/列の固定機能があったはずです。方法は忘れたので自力で調べてください。キーワードは(column|row)Fixだったかな...
ただし、新しい11.0.xからは消えたようです。参考まで。
投稿2020/12/05 13:44
総合スコア4054
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/12/09 02:56