`

JavaFX学习 自定义分页,工具栏,window

阅读更多
   这是很多都是借鉴别人的。
用Button实现关闭Icon,最小化Icon,最大化Icon

public class TestButton extends Application {

	double width = 600;
	double height = 300;
	Stage stage;
	double offsetX;
	double offsetY;

	@Override
	public void start(Stage stage) throws Exception {
		
		VBox root = new VBox();
		init(root);
		Scene scene = new Scene(root, width, height);
		scene.getStylesheets().add(getClass().getResource("dialogs.css").toExternalForm());
		Stage subStage = new Stage(StageStyle.TRANSPARENT);
		subStage.initOwner(stage);
		subStage.setScene(scene);
		subStage.show();
		this.stage = subStage;
	}

	public void init(VBox root) {
		HBox box = new HBox(10);
		ToolBar tb = new ToolBar();
		Button closeButton = createButton("close");
		closeButton.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent event) {
				stage.close();
			}
		});
        Button minimizeButton = createButton("minimize");
        minimizeButton.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent event) {
				stage.setIconified(!stage.isIconified());
			}
		});
        
        Button maximizeButton = createButton("maximize");
        maximizeButton.setOnAction(new EventHandler<ActionEvent>() {
			@Override
			public void handle(ActionEvent event) {
				stage.setFullScreen(true);
			}
		});
        box.getChildren().addAll(minimizeButton,maximizeButton,closeButton);
        Region region = new Region();
        HBox.setHgrow(region, Priority.ALWAYS);
        tb.getItems().addAll(region,box);
        tb.setOnMousePressed(new EventHandler<MouseEvent>() {
			@Override
			public void handle(MouseEvent event) {
				offsetX = event.getSceneX();
				offsetY = event.getSceneY();
			}
		});
        tb.setOnMouseDragged(new EventHandler<MouseEvent>() {
			@Override
			public void handle(MouseEvent event) {
				stage.setX(event.getScreenX()-offsetX);
				stage.setY(event.getScreenY()-offsetY);
			}
		});
        HBox center = new HBox();
        center.setStyle("-fx-background-color: #949494");
        VBox.setVgrow(center, Priority.ALWAYS);
		root.getChildren().addAll(tb,center);
	}
	
	public Button createButton(String name){
		StackPane graphic = new StackPane();
		graphic.getStyleClass().setAll("graphic");
        Button button = new Button();
        button.getStyleClass().setAll("window-button");
        button.getStyleClass().add("window-"+name+"-button");
        button.setGraphic(graphic);
        button.setMinSize(17, 17);
        button.setPrefSize(17, 17);
        return button;
	}
	public static void main(String args[]) {
		launch();
	}
}

.window-button {
    -fx-skin: "com.sun.javafx.scene.control.skin.ButtonSkin";
    -fx-background-color: transparent transparent;
    -fx-background-insets: 0, 1;
    -fx-background-radius: 2;
    -fx-padding: 0 0 0 0;
    -fx-alignment: center;
}

.window-button:hover {
    -fx-background-color: linear-gradient(#505050,#2d2d2d),
                          linear-gradient(#a3a3a3, #8b8b8b 34%, #777777 36%, #777777 63%, #8b8b8b 65%, #adadad);
}

.window-button:pressed {
    -fx-background-color: linear-gradient(#515151,#202020),
                          linear-gradient(#a3a3a3, #8b8b8b 34%, #777777 36%, #777777 63%, #8b8b8b 65%, #adadad);
}

.window-button .graphic {
    -fx-background-color: #949494;
    -fx-scale-shape: false;
    -fx-padding: 4.5 4.5 4.5 4.5; /* Graphic is 9x9 px */
}

.window-button:hover .graphic {
    -fx-background-color: #fefeff;
}

.window-button:pressed .graphic {
    -fx-background-color: #cfcfcf;
}

.window-close-button .graphic {
    -fx-shape: "M395.992,296.758l1.794-1.794l7.292,7.292l-1.795,1.794 L395.992,296.758z M403.256,294.992l1.794,1.794l-7.292,7.292l-1.794-1.795 L403.256,294.992z";
}

.window-minimize-button .graphic {
    -fx-shape: "M420.012,299.248v2.537h-9.001v-2.537H420.012z";
}

.window-maximize-button .graphic {
    -fx-shape: "M406.283,294.985h2.537v9.031h-2.538L406.283,294.985z M412.012,298.248v2.537h-9.001v-2.537H412.012z";
}




  分页Button



  工具栏ToolBar


这里有个javafx学习的中文网站,我把内容都丢那上面去了。
http://www.jfxee.com/
  • 大小: 1.9 KB
  • 大小: 1.4 KB
  • 大小: 3.6 KB
分享到:
评论

相关推荐

    JavaFx 自定义封装 Pagination 分页组件、控件

    Pagination, javaFx 源代码分页功能较少,该代码组件支持首页、上一页、下一页、尾页、跳转、每页数量等操作,同时展示总数据量,使用教程搜索博客:《JavaFx 自定义封装 Pagination 分页组件、控件》

    自定义工具栏

    在IT领域,自定义工具栏是一项重要的用户界面(UI)设计功能,它允许用户根据自己的需求和偏好调整软件的工作环境。在本示例中,我们关注的是“自定义浮动工具栏”,这是一种特定类型的工具栏,它不仅可以固定在屏幕...

    springboot 与 javaFX 集成 自定义starter

    springboot-javafx-support 文档地址:https://springboot-javafx-support.readthedocs.io/en/latest/ 集成参考:https://segmentfault.com/a/1190000014037443

    JavaFX2如何使用第三方字体(use custom fonts in JavaFX2)

    本文将详细介绍如何在JavaFX2中使用自定义字体,并通过一个简单的示例——`CustomFontApp`来阐述整个过程。 首先,你需要获取第三方字体文件,通常为`.ttf`(TrueType Font)或`.otf`(OpenType Font)格式。这些文件...

    javaFX学习资料集

    随着JavaFX的持续发展,它已经成为Java开发者构建现代化图形用户界面(GUI)的重要工具,尤其在Java SE和Java EE环境中。本资料集包含了最新的JavaFX学习资源,旨在帮助开发者掌握这一强大的技术,以应对日益增长的...

    JavaFX学习资料总结

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的Java库。它提供了丰富的用户界面组件、强大的图形...通过学习和掌握JavaFX,开发者可以充分利用其丰富的特性,创建出具有吸引力和交互性的应用程序。

    javaFx 学习--之布局菜单

    javaFx 学习--之布局菜单

    基于JAVAFX的钢琴小工具

    总的来说,“基于JAVAFX的钢琴小工具”展示了JavaFX在创建富互联网应用程序中的强大能力,结合了图形用户界面设计、音频处理、事件处理和动画技术,提供了一种趣味性的学习和娱乐体验。通过深入理解这些知识点,...

    javafx学习网站

    ### JavaFX 学习资源与核心知识点概览 #### 一、JavaFX 概述 JavaFX 是一个用于创建丰富客户端应用的平台,它支持创建跨平台的应用程序,包括桌面应用和嵌入式系统。JavaFX 提供了一个强大的场景图 API,允许...

    FxMarkdownEditor-基于JavaFx的Markdown编辑器

    对于Java开发者来说,深入研究`FxMarkdownEditor`的源码,不仅可以学习到如何使用JavaFX构建桌面应用,还可以了解到如何处理Markdown解析和渲染,甚至可能涉及自定义JavaFX组件或事件处理机制。这对于提升JavaFX和...

    JavaFx开发Windows画图板工具

    颜色选择器和工具栏是画图板工具的常见功能。JavaFX提供各种UI组件,如ComboBox用于颜色选择,ToolBar可以容纳不同的绘图工具按钮。我们还需要实现这些组件与绘图行为之间的绑定,确保用户选择的颜色和工具能在画布...

    基于JavaFx的常见自定义UI组件设计源码

    本项目为JavaFx平台下的自定义UI组件设计源码,汇集了110个Java源文件、27个CSS样式文件、24个PNG图片资源、18个JavaScript脚本文件、5个XML配置文件、3个GIF动画文件、2个字体文件(ttf)、2个JPEG图片文件、2个...

    JavaFX教程(学习资料)

    JavaFX教程;JavaFX教程;JavaFX教程JavaFX教程;

    Java生成自定义控件源代码.7z

    本压缩包“Java生成自定义控件源代码.7z”中包含的文件很可能是一系列示例代码,帮助开发者学习如何在Java环境中创建自定义控件。 首先,理解Java中的控件(Components):在Swing中,JComponent类是所有可绘制用户...

    wxh (JavaFX学习曲线日记

    JavaFX学习曲线日记

    JavaFX学习之样例8

    JavaFX是一种用于构建桌面、移动和嵌入式设备上的富客户端应用程序的开源图形用户界面(GUI)工具包。它是Oracle JDK的一部分,但在Java 11之后作为独立的模块发布。这个"JavaFX学习之样例8"可能是一个教程或示例...

    30个工具栏源码

    在这30个工具栏源码中,你可以深入研究每个工具栏的构建方式,包括如何添加按钮、如何响应用户点击、如何自定义布局和样式等。这不仅可以帮助初学者掌握基本的GUI编程技巧,对于有经验的开发者来说,也是借鉴和学习...

Global site tag (gtag.js) - Google Analytics