回答編集履歴
3
回答の間違い訂正
answer
CHANGED
@@ -32,8 +32,11 @@
|
|
32
32
|
|
33
33
|
悩ましいのはコントローラーをスッキリ書くためにはデータクラスにJavaFXプロパティーを実装しておきたい点なのですが、これはJavaでしかできそうもなく(?)かつJavaFXプロパティーがボイラープレートそのものなのがイケテないです。(lombokで@FXPropertyアノテーションを作ったらいいというような話を聞いたことがありますがあまり出回ってない(立ち消え?)感じなので残念ながら自分は試したことありません。)
|
34
34
|
|
35
|
-
あるいはデータクラスだけ我慢してJava側でJavaFXボイラープレートでクラス定義すればかなり気持ちよく作れるのかも知れません。例えば前回の質問にあったPropertyValueFactoryが使えるようになり、編集可能とするための実装はeditableプロパティーを(SceneBuilderで)trueにしてやるだけで済みます。(質問者さんはTableCellが編集状態になったときTextFieldを置くといった制御を考えておられるようですがその実装が不要になります)
|
35
|
+
あるいはデータクラスだけ我慢してJava側でJavaFXボイラープレートでクラス定義すればかなり気持ちよく作れるのかも知れません。例えば前回の質問にあったPropertyValueFactoryが使えるようになり、編集可能とするための実装はeditableプロパティーを(SceneBuilderで)trueにしてやるだけで済みます(**=>間違い※1**)。(質問者さんはTableCellが編集状態になったときTextFieldを置くといった制御を考えておられるようですがその実装が不要になります)
|
36
36
|
|
37
|
+
**※1 訂正:「editableをtrueにしただけで済む」は間違いでした。**
|
38
|
+
デフォルトのTableCellでは編集能力を持ってないので編集能力を持ったTableCellの派生クラスを用いないといけませんでした。訂正してお詫びします。なお編集対象がJavaFXプロパティーなら、TextFieldTableCellなどの提供クラスで簡単に実装できるため、やはりJavaFXプロパティーをデータクラスに実装した方が楽だとは思います。
|
39
|
+
|
37
40
|
余談ですがcssはJavascriptやJava上で書く必要はなく、cssファイルを定義しておき、FXMLでノードにくっつけてあげるほうが楽な気がします。(SceneBuilderでcssをrootノードにくっつけておけます)
|
38
41
|
|
39
42
|
取り留めないコメントで失礼しました。
|
2
誤記訂正
answer
CHANGED
@@ -30,10 +30,10 @@
|
|
30
30
|
|
31
31
|
まずJava(JavaFXも)がボイラープレート的コードが多くなりがちなのでJavascriptでさらさら書けたらさぞうれしかろうと思いました。自分はjavascriptをさらさら書けないのですが、お見受けしたところ質問者さんは苦もなく書いておられるような…
|
32
32
|
|
33
|
-
悩ましいのはコントローラーをスッキリ書くためにはデータクラスにJavaFXプロパティーを実装しておきたい点なのですが、これはJavaでしかできそうもなく(?)かつJavaFXプロパティーがボイラープレートそのもの
|
33
|
+
悩ましいのはコントローラーをスッキリ書くためにはデータクラスにJavaFXプロパティーを実装しておきたい点なのですが、これはJavaでしかできそうもなく(?)かつJavaFXプロパティーがボイラープレートそのものなのがイケテないです。(lombokで@FXPropertyアノテーションを作ったらいいというような話を聞いたことがありますがあまり出回ってない(立ち消え?)感じなので残念ながら自分は試したことありません。)
|
34
34
|
|
35
|
-
あるいはデータクラスだけ我慢してJava側でクラス定義
|
35
|
+
あるいはデータクラスだけ我慢してJava側でJavaFXボイラープレートでクラス定義すればかなり気持ちよく作れるのかも知れません。例えば前回の質問にあったPropertyValueFactoryが使えるようになり、編集可能とするための実装はeditableプロパティーを(SceneBuilderで)trueにしてやるだけで済みます。(質問者さんはTableCellが編集状態になったときTextFieldを置くといった制御を考えておられるようですがその実装が不要になります)
|
36
36
|
|
37
|
-
余談ですがcssはJavascriptやJava上で書く必要はなく、cssファイルを定義しておき、FXMLでノードにくっつけてあげる
|
37
|
+
余談ですがcssはJavascriptやJava上で書く必要はなく、cssファイルを定義しておき、FXMLでノードにくっつけてあげるほうが楽な気がします。(SceneBuilderでcssをrootノードにくっつけておけます)
|
38
38
|
|
39
39
|
取り留めないコメントで失礼しました。
|
1
追記
answer
CHANGED
@@ -19,4 +19,21 @@
|
|
19
19
|
上に述べたバグは「SelectionMode.MULTIPLE」の場合のみ発生すると自分は考えています。またJDK8では本件はすぐに対策されない気がしてます。そこでもしSelectionMode.SINGLEが許容できるなら回避策になると思います。
|
20
20
|
|
21
21
|
- JDK9を用いる
|
22
|
-
JDK9では多分発生しないと思います。まだ正式リリースされてないのでこの選択はイマイチですが。
|
22
|
+
JDK9では多分発生しないと思います。まだ正式リリースされてないのでこの選択はイマイチですが。
|
23
|
+
|
24
|
+
---
|
25
|
+
|
26
|
+
追記:
|
27
|
+
> TableView周辺を Javaで書き...
|
28
|
+
|
29
|
+
自分はJavascriptには暗くjjsも本質問で初めて知った程度なので以下は話半分くらいに聞いてください。
|
30
|
+
|
31
|
+
まずJava(JavaFXも)がボイラープレート的コードが多くなりがちなのでJavascriptでさらさら書けたらさぞうれしかろうと思いました。自分はjavascriptをさらさら書けないのですが、お見受けしたところ質問者さんは苦もなく書いておられるような…
|
32
|
+
|
33
|
+
悩ましいのはコントローラーをスッキリ書くためにはデータクラスにJavaFXプロパティーを実装しておきたい点なのですが、これはJavaでしかできそうもなく(?)かつJavaFXプロパティーがボイラープレートそのものという点だと思います。(lombokで@FXPropertyアノテーションを作ったらいいというような話を聞いたことがありますがあまり出回ってない(立ち消え?)感じなので残念ながら自分は試したことありません。)
|
34
|
+
|
35
|
+
あるいはデータクラスだけ我慢してJava側でクラス定義しそれ以外はJavascriptで書くことができるとかなり気持ちよく作れるのかも知れません。例えば前回の質問にあったPropertyValueFactoryが使えるようになり、編集可能とするための実装はeditableプロパティーをtrueにしてやるだけで済みます。(質問者さんはTableCellが編集状態になったときTextFieldを置くといった制御を考えておられるようですがその実装が不要になります)
|
36
|
+
|
37
|
+
余談ですがcssはJavascriptやJava上で書く必要はなく、cssファイルを定義しておき、FXMLでノードにくっつけてあげるのが楽だと思います。(SceneBuilderでcssをrootノードにくっつけておけます)
|
38
|
+
|
39
|
+
取り留めないコメントで失礼しました。
|