2017-11-22 11 views
0

FXMLインクルードファイルのコンテキストでネストされたFXMLコントローラに関する記事を読んだことがあります。しかし、私の問題は、複数のクラスが定義された1つのFXMLファイルがあることです。FXMLネストされたコントローラを単一のFXMLファイルに入れる方法

私の問題を単純に入れてください。以下の例でmakeMe()を実行するのと同じように、1つのFXMLファイルでどうすればいいですか?

public class ClassA{ 
    // something 
} 

public class ClassB{ 
    public ClassA myAClass; 
} 

public void makeMe{ 
    ClassB myBClass; 
    myBClass = new ClassB(); 
    myBClass.myAClass = new CLassA(); 
} 
+0

Headerインスタンスを持っていますFXMLファイルを読み込んだとき(FXMLは1つしかありませんか?)おそらく、https://docs.oracle.com/javase/9​​/docs/api/javafx/fxml/doc-files/introduction_to_fxml.html#custom_components –

+0

こんにちはJames D.を使用してこれを再構成する必要があります。問題をより一般的なものにするにはどのようにして一つのFXMLファイルを使って 'ReflectTest.header = new Header();と同じことをすることができますか? ReflectTest.header.chartWindow =新しいブロック(); 'たぶん私はそれをフレーズのようにすれば、問題はもっと明白かもしれません。 –

答えて

0

もしそうなら、試してみてください。この状況で

<Header fx:id="header" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller"> 
    <chartWindow> 
     <Block count="4" type="Short" /> 
    </chartWindow> 
    <measurement> 
     <Block count="6" type="Short" /> 
    </measurement> 
</Header> 

Headerは次のように

public class Header extends Block { 

    private Block chartWindow; 

    private Block measurement; 

    public Block getChartWindow() { 
     return chartWindow; 
    } 

    public void setChartWindow(Block block) { 
     this.chartWindow = block; 
    } 

    public Block getMeasurement() { 
     return measurement; 
    } 

    public void setMeasurement(Block block) { 
     this.measurement = block; 
    } 
} 

になりますので、コントローラであなただけを終了したいのか、私は本当に明確ではないよ

public class Controller { 
    @FXML 
    private Header header; 
} 
関連する問題