2017-06-12 18 views
2

私はバックグラウンドノードを持っている単純なビューを作成しようとしています(ここではテキストノードがありますが、最終ノードはSVGパス )をVBoxの後ろに置きます。 VBoxの実装に移行する前に、バックグラウンドノードをルートStackPaneの中心に配置しようとしていますが、ノードを正しく中央に配置できないようです。それが関連するかどうTornadoFXを使用してStackPaneでノードを中心に取得できません

class UserInputUI : App(InputView::class, UIStyles::class) { 
    init { 
    reloadStylesheetsOnFocus() 
    } 

    override fun start(stage: Stage) { 
    stage.minWidth = 1024.0 
    stage.minHeight = 768.0 
    super.start(stage) 
    } 
} 

class InputView : View() { 
    override val root = StackPane() 

    init { 
    text("I wish to be centered") { 
     stackpaneConstraints { 
     alignment = Pos.CENTER 
     addClass(UIStyles.headerFontStyle) 
     } 
    } 
    } 
} 

と私のUIStylesクラス..:ここ

は私のクラスです。

class UIStyles : Stylesheet() { 
    companion object { 
    val headerFontStyle by cssclass() 
    private val headerFontColor = Color.BLACK 
    } 

    init { 
    headerFontStyle { 
     fontSize = 48.px 
    } 
    } 
} 

私はStackPaneの途中でノードを中心とすることになってるの異なる方法はありますか?私もroot.alignment = Pos.CENTERInputView init関数で試しましたが、役に立たないです。私はダム何かをやっているように私は感じ

help this poor box

..任意のヘルプ?ありがとう!

答えて

1

minWidth/Heightコールの前にコールを入れてみてください。

+0

Huh!それはそれをしたようだ。理由は分かりませんが、今は動作しています!ありがとうございました! – shanling

+1

ヒント:ビルダーを使ってスタックペインを作成してみてください: 'override val root = stackpane {text(" ... ")}'。そうすれば、initブロックは必要なくなり、コードはより洗練されたように見えます。 –

+0

よろしくお願いします!私はあなたに感謝します – shanling

2

これはSlackで議論していますが、LinuxとMac/Windowsの間にJavaFXの不一致があると思われます。

minWidth/minHeightの設定の前にsuper.start()コールを発信すると、Sceneが既に作成されているため、原因と考えられます。

StackPaneは、デフォルトでは子を中心にしているため、stackpaneConstraintsの設定は必要ありません。ビルダーを使用してスタックペインを定義する場合も、コードはもっとクリーンに見えます:

class InputView : View() { 
    override val root = stackpane { 
     text("I wish to be centered") 
    } 
} 
+0

はい、非常に興味深いのは、元のコードはLinuxで動作しませんが、osx /勝利で..私は4.470-1 - MANJAROを使用している場合は、役立ちます!そしてありがとう!私はstackpaneConstraintsを取り除くことができました。そして、すべてが今よりもっときれいです:-) – shanling

+0

(あなたもtornadofxでやってくれてありがとう、それは絶対に素晴らしいです。 – shanling

+0

私はLinuxディストリビューションが自動的にopenjfxをoracleのjdk/jfxの代わりにopenjfxと一緒にインストールしていて、そこに互換性の問題があるかもしれないという考えを持っていました – shanling

関連する問題