JavaFX에서 창 전환



Answers

(이 예에서는 FXMLLogin.fxml과 Home.fxml이라는 각각의 컨트롤러가있는 두 개의 FXML 문서를 만들었습니다.)

FXMLLogin에서 Home으로 이동하려면,

이 예제에서 FXMLLoginController 내에서 눌려진 폼의 "login"버튼에 응답 하는 메소드를 만들었습니다 :

@FXML
private void login(javafx.event.ActionEvent event) throws IOException
{
    if(pwf1.getText().equals("alphabetathetagamma"))
    {
            Parent blah = FXMLLoader.load(getClass().getResource("Home.fxml"));
            Scene scene = new Scene(blah);
            Stage appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
            appStage.setScene(scene);
            appStage.show();
    }
    else
    {
            label1.setText("Password is incorrect. Please Try Again");
    }
}

@FXML은 매우 중요합니다.

귀하의 질문을 올바르게 이해했다면,이 트릭을해야합니다.

창 사이를 전환하는 것은 분명하지 않으며 내가 찾은 웹의 자습서에 명확하게 설명되어 있지 않습니다. 나는 처음으로 알아 내기 전에 혼자 구글에 가야만했다. 운좋게도, 일단 당신이 그것의 걸림 새우를 얻으면 그것은 실제로 아주 간단합니다.

나는 당신의 질문을 오해하지 않았 으면 좋겠습니까? 이것이 필요한 경우 알려주십시오 :)

Question

FXML을 사용하여 JavaFX에서 Java 프로그램을 만들려고합니다. 그러나 레이아웃 관리에 문제가 있습니다. 나는 스윙에서 CardLayout을 사용하는 것처럼 Panes 사이를 전환하고 싶지만, 나는 그것을 얻을 수없는 것 같습니다.

나는 주위에 인터넷 검색을하고 답을 찾지 못했습니다.

JavaFX에 CardLayout이 있습니까? 그렇다면 예제를 제공 할 수 있습니까? 그것은 내 저녁에 많은 도움이 될 것입니다!

여기 내 FXML 코드입니다.

    <AnchorPane id="anchorPane" prefHeight="324.0" prefWidth="530.0" xmlns:fx="http://javafx.com/fxml" fx:controller="javafxapplication2.SampleController">
  <children>
    <Pane fx:id="mainScreen" layoutX="6.0" prefHeight="324.0" prefWidth="518.0">
      <children>
        <Button layoutX="254.0" layoutY="37.0" mnemonicParsing="false" text="Button" />
      </children>
    </Pane>
    <Pane fx:id="loginScreen" prefHeight="324.0" prefWidth="530.0">
      <children>
        <TextField id="password" fx:id="username" layoutX="142.0" layoutY="106.0" prefWidth="200.0" />
        <TextField fx:id="password" layoutX="142.0" layoutY="140.0" prefWidth="200.0" />
        <Label fx:id="label" layoutX="126.0" layoutY="120.0" minHeight="16.0" minWidth="69.0" />
        <Button fx:id="button" layoutX="213.0" layoutY="196.0" onAction="#handleButtonAction" onKeyPressed="#handleButtonAction" text="Login" />
      </children>
    </Pane>
  </children>
</AnchorPane>



Links