Ich versuche, ein Skelett für eine große komplexe GUI zu erstellen, so ist die Idee, alles mit MVC wie Stil in javafx 2.1 zu machen, so dass jede Komponente eine fxml hat Datei und bei Bedarf CSS, Controller und Modell. Ich versuche herauszufinden, wie man Subszenen (Subfxml zur Laufzeit) ändert. Jeder weiß, wie es geht? Ich bleibe irgendwie dabei. Darf man MainViewController hinzufügen? Szenario: Benutzer klickt auf die Schaltfläche in der Taskleiste und die darin enthaltene content1.fxml wird mit content2.fxmlWie man sub fxml gui Teile zur Laufzeit mit Button klicken
hier die grundlegenden Code
MainApp.java
Loads the MainView.fxml
MainView.fxml ersetzt werden
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<BorderPane xmlns:fx="http://javafx.com/fxml">
<center>
<fx:include source="Content1.fxml"/>
</center>
<bottom>
<fx:include source="TaskBar.fxml"/>
</bottom>
</BorderPane>
Content1.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<StackPane xmlns:fx="http://javafx.com/fxml" fx:id="content1">
<Label text="Hallo Java FX 2.1.1 Content1.fxml"/>
</StackPane>
Content2.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<StackPane xmlns:fx="http://javafx.com/fxml" fx:id="content2">
<Label text="Hallo Java FX 2.1.1 Content2.fxml"/>
</StackPane>
TaskBar.fxml
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<HBox xmlns:fx="http://javafx.com/fxml" spacing="10" alignment="center"
fx:id="taskBar" fx:controller="TaskBarController">
<children>
<Button fx:id="taskBarButton1" onAction="#handleTaskBarButton1Action"/>
<Button fx:id="taskBarButton2" onAction="#handleTaskBarButton2Action"/>
</children>
</HBox>
TaskBarCont roller.java
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
public class TaskBarController implements Initializable {
// Binding with the FXML
@FXML
private Button taskBarButton1;
@FXML
private Button taskBarButton2;
@FXML
private void handleTaskBarButton1Action(ActionEvent event) {
System.out.println("click! taskBarButton1");
}
@FXML
private void handleTaskBarButton2Action(ActionEvent event) {
System.out.println("click! taskBarButton2");
}
@Override
public void initialize(URL location, ResourceBundle resources) {
// TODO Auto-generated method stub
}
}
hier Bild für meine gewünschte Funktion http://www.alsphera.com/enter/howtodoit.png – Snow