今、nodamushiがわからないこと別スレッドで処理した内容をsetTextでLabelの内容を変えようとするとスレッドがJavaFXのスレッドじゃないとエラーになる。SwingUtilities.invokeLater(Runnable)みたいなことはどうすればいいの?あるプロパティの値の変化でNodeの最適な大きさが変化したときに、どうすれば自動的に大きさを変更できるのか。(Swingでいうrevalidateとかみたいな)ぶっちゃけ、プロパティのbeanって何よ。いうか、プロパティってどれ使えばいいのよ。今日やった内容を書き留めときます。自作のレイアウトを作ってみる。簡単なレイアウトなら、既存のレイアウトパネル群を使えば、大体は出来るだろう。出来ないことだってあるじゃん。それに、今までSwing使ってきた私としては、自分でLayoutManagerを書いた方が何となくやりやすい。いうわけで、練習として、今回は下の図の様に自分の子を円形に配置するレイアウトを作ってみることにしたよ。レイアウトのためのノードを作るには、javafx.scene.layout.Paneを継承したクラスを作ればいいっぽい。以下のメソッドをオーバーライドする。layoutChildren():実際に子の配置を行うメソッドcomputePreWidth(double):このノードの最適な幅を計算するメソッドcomputePreHeight(double):このノードの最適な高さを計算するメソッドcomputeMinWidth(double):このノードの最小の幅を計算するメソッドcomputeMinHeight(double):このノードの最小の高さを計算するメソッドcomputeMaxWidth(double):このノードの最大の幅を計算するメソッドcomputeMaxHeight(double):このノードの最大の高さを計算するメソッド今回、最大最小は特に気にしないことにしたので、最初の三つをオーバーライドすることにした。最小値のデフォルトはinsetの大きさ、最大はDouble.MaxValueを返すらしい。円形に配置したいので、高さの最適値は「円の直径+子の高さの中で最大のもの」、幅も同様に「円の直径+この幅の中で最大のもの」とした。今回はinsetは考えていない。いうわけで、これを元に実装するとこうなる。}}このCirclePaneに適当にCircleを30個追加して表示した結果が先の図ってわけです。レイアウトをすることは出来たね。この半径を変更したり、配置の開始角度を変更したりしてアニメーションさせることが出来たら楽しそうだよね。radiusをDoublePropertyに変えてみよう.........と思わなけりゃ良かった。radiusの値の変更があったら、自動で再レイアウトをしてもらわないといけない。何となく、それっぽい関数にrequestLayout()があったので、それを呼んでみた。radius.getValue();}とりあえず、これでアニメーションしてみた。}}以下の内容は勘違いだと気がつきました。レイアウトの大きさの変更は上のレイアウトに伝わっていました。最初っからがっつりウィンドウサイズを大きくしてから実行した例↓きちんとアニメーションに従ってbottomの位置が変化しました。requestLayoutで良さそうです。結果というとふ〜む.........。いやね、ウィンドウサイズまで変化するとは私も思っていなかったんですよ。CirclePaneを代入したVBoxはレイアウトを変更してくれる。上の図では小さくて見にくいと思いますが、topとbottomの文字が円に被らないように再配置されると思ったんですよ。結果はtopとbottomは動かないっ!再配置されない!で、わからんから、OpenJFXのソースコード読んでみたんですよ。したら、平気で、impl_markDrityとか意味わからん関数使っとるんす。うん、みなまで...2015-03-02Graphicを設定したRadioButtonをSkinで使うと表示がおかしくなるControlのSkinにRadioButtonを使う。RadioButtonには画像も表示...2014-10-22relocateはsetLayoutX,setLayoutYの代わりではない朝から叫んでおりました内容が解決したので、記事にしておきま...2014-10-11JavaFXのChartでMinorTickでも線を描くJavaFXのChartって使いにくいなこんちきしょう。グラフ内部のマ...2013-09-11JavaFXのControlとSkinとControllerと前回のダイアログの話の続きです。»プロフィールJavaで画像AI屋だったハズが、気がついたら制御論理やってて、Eclipse開発してて、組み込み屋で、CortexM4周りの開発してて、VerilogでRTL書いてて、STAしてて、色んな小さいインフラ管理してる、何でも屋。働きたくないでござる。(14)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。