javafx-2 – JavaFX中的内部框架
发布时间:2020-05-25 15:42:58 所属栏目:Java 来源:互联网
导读:我找到了内部框架的这个例子 http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html 是否可以在JavaFX中创建相同的内部框架? 使用 JFXtras,有一个Window控件,您可以在其中添加内容并处理内部窗口行为. 首先,您需要在类路径中放入jf
|
我找到了内部框架的这个例子 http://docs.oracle.com/javase/tutorial/uiswing/components/internalframe.html 是否可以在JavaFX中创建相同的内部框架? 解决方法使用 JFXtras,有一个Window控件,您可以在其中添加内容并处理内部窗口行为.首先,您需要在类路径中放入jfxtras库.他们有一些说明,您可以在这里获得图书馆.如果您使用的是maven,只需添加: <dependency>
<groupId>org.jfxtras</groupId>
<artifactId>jfxtras-labs</artifactId>
<version>2.2-r5</version>
</dependency>
或者下载库并将其放入项目类路径中,无论如何. 现在我把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);}
}
在原始演示中,事件代码位于init方法中,并且未包含任何按钮.我添加按钮以动态创建窗口并将其添加到屏幕. 以下是应用程序结果的快照: 我完全建议你试试jfxtras的演示.他们真的很棒.希望能帮助到你. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
