JavaFx 2.x: этап в панели вкладок

Мне нужно отобразить один или несколько этапов в TabPane, нажав кнопку, например, на картинке ниже

введите описание изображения здесь

Моя цель - создать ситуацию, аналогичную JInternalFrame в Swing: как этого добиться? Я не могу добавить стадию в качестве дочерних на панель вкладок.

Если это невозможно, какие могут быть другие решения? Я бы хотел, чтобы на сцене были SplitPanes.

Спасибо

PS Я использую Win7, NetBeans 7.4 Beta (Build 201307092200), SceneBuilder 1.1

Изменить: вот как это выглядит после некоторых изменений CSS в VFXWindows

введите описание изображения здесь

Стоит обратить внимание на одну вещь: мне пришлось добавить узел (в моем случае HBox с prefSize (0,0), иначе я не могу переместиться или изменить размер первого отображаемого окна, только первого.

И, наконец, я не могу найти способ установить полноэкранный режим Windows (развернуть).


person Alberto acepsut    schedule 23.07.2013    source источник
comment
Взгляните на элемент управления Window на jfxtras.org. Я также отвечаю на вопрос, связанный с внутренними окнами. stackoverflow.com/questions/17673292/internal-frames- в-javafx /. Надеюсь, это поможет.   -  person Antonio J.    schedule 24.07.2013
comment
Спасибо Антонио, внимательно посмотрю.   -  person Alberto acepsut    schedule 24.07.2013
comment
@Antonio: ну, я последовал твоему предложению и наконец получил внутреннее окно (я): у меня только некоторые проблемы с открытием внутренних окон в TabPane, не могли бы вы опубликовать пример? Спасибо   -  person Alberto acepsut    schedule 24.07.2013


Ответы (1)


Здесь я помещаю пример окон из jfxtras внутри вкладок, я просто изменяю example.

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.stage.Stage;
import jfxtras.labs.scene.control.window.CloseIcon;
import jfxtras.labs.scene.control.window.MinimizeIcon;
import jfxtras.labs.scene.control.window.Window;


public class WindowInTab extends Application {
private static int counter = 1;

private void init(Stage primaryStage) {
    TabPane tabPane = new TabPane();
    Tab tab = generateTab("Windows...");        
    Tab anotherTab = generateTab("More Windows");
    tabPane.getTabs().addAll(tab, anotherTab);      
    primaryStage.setResizable(true);
    primaryStage.setScene(new Scene(tabPane, 600, 500));        
}

private Tab generateTab(String tabName) {
    Tab tab = new Tab(tabName);
    final Group root = new Group();
    tab.setContent(root);
    Button button = new Button("Add more windows");     

    root.getChildren().addAll(button);      

    button.setOnAction(new EventHandler<ActionEvent>() {            
        @Override
        public void handle(ActionEvent arg0) {
            // create a window with title "My Window"
            Window w = new Window("My Window#"+counter);
            // set the window position to 10,10 (coordinates inside canvas)
            w.setLayoutX(10);
            w.setLayoutY(10);
            // define the initial window size
            w.setPrefSize(300, 200);
            // either to the left
            w.getLeftIcons().add(new CloseIcon(w));
            // .. or to the right
            w.getRightIcons().add(new MinimizeIcon(w));
            // add some content
            w.getContentPane().getChildren().add(new Label("Content... \nof the window#"+counter++));
            // add the window to the canvas
            root.getChildren().add(w);  
        }
    });
    return tab;
}

public double getSampleWidth() {return 600;}
public double getSampleHeight() {return 500;}

@Override
public void start(Stage primaryStage) throws Exception {
    init(primaryStage);
    primaryStage.show();
}
public static void main(String[] args) {launch(args);}

}

внутренние окна во вкладках

Не знаю, было ли это именно то, что вы искали. Надеюсь, это поможет!

person Antonio J.    schedule 24.07.2013
comment
Спасибо большое, это именно то, что я искал! - person Alberto acepsut; 24.07.2013
comment
И последний вопрос: есть ли для этого приложения Java-документация? Я хотел бы изменить цвет фона, изменить шрифт, размер и выравнивание текста окна, добавить значок развертывания окна и т. Д. - person Alberto acepsut; 24.07.2013
comment
Я не мог его найти. Но загляните на веб-страницу jfxtras, если вы можете найти какую-либо документацию. Я предполагаю, что этот элемент управления достаточно настраиваемый. - person Antonio J.; 24.07.2013
comment
Привет, Антонио, могу я с тобой напрямую связаться? В моем проекте есть некоторые проблемы, которые я не могу здесь показать. Я использую Skype (acepsut) или пишу тому же нику @ gmail.com. Спасибо. - person Alberto acepsut; 25.07.2013