2013-07-23 3 views
0

мне нужно, чтобы отобразить один или более этап (ы) в TabPane, нажав на кнопку, например, изображение нижеJavaFX 2.x: Этап в TabPane

enter image description here

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

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

Благодаря

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

Edit: вот как это выглядит после того, как некоторые VFXWindows CSS изменения

enter image description here

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

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

+1

Посмотрите на элемент управления Window на http://jfxtras.org/. Я также отвечаю на вопрос, связанный с внутренними окнами. http://stackoverflow.com/questions/17673292/internal-frames-in-javafx/17693986#17693986. Надеюсь, поможет. –

+0

Спасибо Антонио, посмотрим внимательно. –

+0

@ Антонио: Ну, я последовал твоему предложению и, наконец, получил внутренние окна: у меня есть только проблемы при открытии внутренних окон в TabPane, можете ли вы отправить пример? Спасибо –

ответ

3

Здесь я привел пример из окна с 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);} 

} 

internal windows in tabs

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

+0

Большое спасибо, это именно то, что я искал! –

+0

Приятно это прочитать! :) Счастливое кодирование! –

+0

Последний вопрос: есть ли Java-документ для этого приложения? Я хотел бы изменить цвет фона, изменить шрифт текста окна, размер и выравнивание, добавить значок увеличения окна и так далее. –

Смежные вопросы