relocateはsetLayoutX,setLayoutYの代わりではない2014-10-22relocateはsetLayoutX,setLayoutYの代わりではないJavaFX朝から叫んでおりました内容が解決したので、記事にしておきます。以下のようなクラスを用意します。一辺100の正方形の中心に直径60の円と長さ100の横棒を重ねたような図を表示します。}}ちなみに、Groupを継承する場合はcomputePrefWidthとかじゃなくて、prefWidthをオーバーライドします。今日初めて知りました。下図のようにこいつの棒の端っこに文字をくっつけたいと思います。}}実行結果あるぇええええええ?これの原因が全然分からなくって、Textの高さが指定したものと異なる、もしくは、描画位置が異なるのかとか勝手に思って、勝手にドツボにハマっていました。原因はTextではなく、こいつです。parent.と書いてある。いうわけで、私はsetLayoutXやsetLayoutYではなく、もっぱらrelocateを配置する際に使っていた。このrelocateは単にsetLayoutXやsetLayoutYの代用メソッドではなくて、割といらないことしてくれる。}というように、単にsetLayoutY(y)とするのではなく、getLayoutBounds().getMinY()という値を引いてしまっている。今回、ShapeGroupは高さ100の正方形の中心に直径60の円を描くという前提でプログラムを書いた。ShapeGroupの上下にはそれぞれ長さ20の空白がある。getLayoutBounds().getMinY()はこの20を返す。従って、高さ100の正方形をy座標が0の位置に表示したつもりでも、高さ100の正方形をy座標が-20の位置に表示することになる。これが表示しているテキストの位置と横棒の位置がずれた原因である。relocateをsetLayoutX,setLayoutYに置き換える、もしくはGroupを継承するのではなく、RegionやPaneなどを継承するように変更すると、私が意図したような正しい表示がされる。いうわけで、Groupを使うときは要注意と言うことと、relocate(またはresizeRelocate)はsetLayoutXで設定するのと結果が異なる場合があると知っていないといけない、というのが今日の教訓でした。2016の9日目の@arachan@gith...2014-10-11JavaFXのChartでMinorTickでも線を描くJavaFXのChartって使いにくいなこんちきしょう。グラフ内部のマ...2013-02-13JavaFXの練習4:レイアウトがわからないさぁ、JavaFX2記事第4弾。わかりませ...2013-02-08JavaFX練習3:アニメーションとか前回の続きで今日はアニメーションについて練習しました。あと...2013-02-07JavaFXの練習2:Controllerとかというわけで、今回もJavaFXの練習した内容です。»プロフィールJavaで画像AI屋だったハズが、気がついたら制御論理やってて、Eclipse開発してて、組み込み屋で、CortexM4周りの開発してて、VerilogでRTL書いてて、STAしてて、色んな小さいインフラ管理してる、何でも屋。働きたくないでござる。(14)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。