javafx-2 – JavaFX中的内部框架

前端之家收集整理的这篇文章主要介绍了javafx-2 – JavaFX中的内部框架前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@我找到了内部框架的这个例子 @H_301_2@http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html

@H_301_2@是否可以在JavaFX中创建相同的内部框架?

@H_502_7@解决方法
使用 JFXtras,有一个Window控件,您可以在其中添加内容并处理内部窗口行为. @H_301_2@首先,您需要在类路径中放入jfxtras库.他们有一些说明,您可以在这里获得图书馆.如果您使用的是maven,只需添加

<dependency>
    <groupId>org.jfxtras</groupId>
    <artifactId>jfxtras-labs</artifactId>
    <version>2.2-r5</version>
</dependency>
@H_301_2@或者下载库并将其放入项目类路径中,无论如何.

@H_301_2@现在我把Window的演示样本略有不同,允许生成几个窗口.

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.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 WindowTests extends Application {
private static int counter = 1;

private void init(Stage primaryStage) {
    final Group root = new Group();

    Button button = new Button("Add more windows");     

    root.getChildren().addAll(button);
    primaryStage.setResizable(false);
    primaryStage.setScene(new Scene(root,600,500));

    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);  
        }
    });
}

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);}
}
@H_301_2@在原始演示中,事件代码位于init方法中,并且未包含任何按钮.我添加按钮以动态创建窗口并将其添加到屏幕.

@H_301_2@以下是应用程序结果的快照:

@H_301_2@我完全建议你试试jfxtras的演示.他们真的很棒.希望能帮助到你.

猜你在找的Java相关文章