JavaFX Как сделать окно внутри окна

209
14 марта 2018, 05:43

Доброго времени суток! Как на JavaFX сделать окно Window 2 внутри главного окна Window 1? Т.е. Window 2 можно свернуть и развернуть но внутри Window 1. Как на скрине который написан на Delphi

Java начал изучать не так давно. Сам исходник

Main.java

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    primaryStage.setTitle("Window 1");
    primaryStage.setScene(new Scene(root));
    primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}
}

Controller.java

import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Modality;
import javafx.stage.Stage;
import java.io.IOException;
public class Controller {

public void showWindow2(ActionEvent event) throws IOException  {
    Stage stage2 = new Stage();
    Parent root = FXMLLoader.load(getClass().getResource("sample2.fxml"));
    stage2.setScene(new Scene(root));
    stage2.setTitle("Window 2");
    stage2.initModality(Modality.NONE);
    stage2.show();
}
}

sample.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.Pane?>

<Pane maxHeight="-Infinity" 
      maxWidth="-Infinity" 
      minHeight="-Infinity" 
      minWidth="-Infinity" 
      prefHeight="400.0" 
      prefWidth="600.0"
      xmlns="http://javafx.com/javafx/9.0.1" 
      xmlns:fx="http://javafx.com/fxml/1" 
      fx:controller="sample.Controller">
<children>
  <Button 
     fx:id="showWindow" 
     layoutX="29.0" 
     layoutY="25.0" 
     mnemonicParsing="false" 
     onAction="#showWindow2" 
     text="show windows" />
</children> 
</Pane>

sample2.fxml

<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns="http://javafx.com/javafx"
        xmlns:fx="http://javafx.com/fxml"
        fx:controller="sample.Controller2"
        prefHeight="400.0" prefWidth="600.0">
</AnchorPane>

Искал в google по разному Window in Window, Stage in Stage, Scene in Scene, и нашел о этой ссылке [https://docs.oracle.com/javase/tutorial/uiswing/examples/components/InternalFrameDemoProject/src/components/InternalFrameDemo.java][2] решение в Java Swing а нужно средствами JavaFX

Благодарю за внимание!

READ ALSO
BroadcstReciver и AlarmManager

BroadcstReciver и AlarmManager

У меня такая задача, нужно через определенные отрезки времени обмениваться с сайтом информацией и в силу свое малого познания android я делаю...

136
Подгрузка данных с API+DB используя offset и limit

Подгрузка данных с API+DB используя offset и limit

У меня есть вот такой метод API

222
Десериализация JSON: нечитаемые символы

Десериализация JSON: нечитаемые символы

Одно приложение стучится в другое и получает REST-ответ в виде JSON

151
как работать с txt с помощью jquery

как работать с txt с помощью jquery

здраствуйте! имеется переменная, так же имеется файл isnotvaluetxt с множеством числовых и буквенных выражений которые недопустимы в переменной...

239