总结常用的Javafx功能及用法

  • 什么是Javafx
  • 一个窗口都有哪些内容
  • 制作一个简单的窗口
  • 一些方法
    • Stage
    • scene
    • Pane
    • node(一般node同用的方法,这里用label举例)
    • 关闭提示窗口
    • 多窗口的跳转
    • 有关Color设置的三种方式
    • 有关Font设置字体、字重、大小
    • 有关Image加载图片

什么是Javafx

JavaFX是一个java语言图形界面开发工具包,加上布局和java逻辑可以制作出可视化的窗口

加粗样式放在前面的JavaFX 在线API

https://docs.oracle.com/javase/8/javafx/api/toc.htm

一个窗口都有哪些内容


一个Javafx程序包括:
stage,scene,pane(布局),node(label,button,image。。。)
彼此之间是包含关系。
一个pane可以包含多个node

制作一个简单的窗口

创建一个javaFX程序,继承Application类,重写它的start方法(逻辑在这里),执行时在main方法中调用launch方法从而会调用start
注意导包的时候,button是javafx下的,不要导错包

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;public class HelloJavaFX extends Application {public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage stage) {//创建一个node,并设置好它的位置Button button = new Button("你好,世界");button.setLayoutX(200);button.setLayoutY(200);//创建一个布局,把button放进布局里AnchorPane root = new AnchorPane();root.getChildren().addAll(button);//创建一个场景,场景中要有布局,宽高是可选项Scene scene = new Scene(root,500,500);//对stage进行设置,将场景放进stage,设置标题,程序图标,以及最终展示出来stage.setScene(scene);stage.setTitle("JavaFX");stage.getIcons().add(new Image("1.jpg"));stage.show();}
}

一些方法

Stage

1、设置图标

stage.getIcons().add(new Image("图片路径"));

2、设置标题

stage.setTitle("标题");

3、接收场景

stage.setScene(scene);

4、窗口大小是否可调整

//窗口大小默认是可调整的,如果想固定大小不可调整,参数填false
stage.setResizable(false);

5、窗口样式

stage.initStyle(StageStyle.DECORATED);
//StageStyle.DECORATED  默认情况,有白色背景和装饰
//StageStyle.TRANSPARENT    透明背景,没有装饰(没有标题,最大最小化和关闭按钮,不可调整大小)
//StageStyle.UNDECORATED    白色背景,没有装饰(没有标题,最大最小化和关闭按钮,不可调整大小)
//StageStyle.UTILITY    白色背景,实用窗口(没有标题,固定大小不能最大化小化)

scene

1、接收布局

//创建一个场景,场景中要有布局,宽高是可选项
Scene scene = new Scene(布局,500,500);

2、设置鼠标图片

scene.setCursor(new ImageCursor(new Image("2.jpeg")));

Pane

常用的布局:
----BorderPane:将页面分成上下左右中五部分

BorderPane borderPane = new BorderPane();
ToolBar toolbar = new ToolBar();
borderPane.setTop(toolbar);
//borderPane.setCenter(toolbar);
//borderPane.setBottom(toolbar);

----AnchorPane:以偏移量或坐标轴去设定节点位置

     //创建一个node,并设置好它的位置Button button = new Button("你好,世界");//创建一个布局,把button放进布局里AnchorPane root = new AnchorPane();//这里将button设置离布局上边缘200,距离布局左边缘100的位置//相当于直接对button进行坐标设置//button.setLayoutX(100);//button.setLayoutY(200);AnchorPane.setTopAnchor(button,200.0);AnchorPane.setLeftAnchor(button,100.0);//AnchorPane.setRightAnchor(button, 10.0);//AnchorPane.setBottomAnchor(button,100.0);root.getChildren().addAll(button);

node(一般node同用的方法,这里用label举例)

1、坐标

Label label = new Label("你要开心呀~");
label.setLayoutX(100);
label.setLayoutY(200);

2、颜色

//可以在setStyle方法中 定义node的背景颜色,边框颜色,边框大小等
label.setStyle("-fx-background-color: red;-fx-border-color: blue;-fx-border-width: 3px");

3、宽高
给label设置颜色后发现 文字其实被包裹在边框中的,这个时候我们可以调节它的宽高,和文字处于边框的位置

label.setStyle("-fx-background-color: red;-fx-border-color: blue;-fx-border-width: 3px");
label.setPrefWidth(200);
label.setPrefHeight(50);
label.setAlignment(Pos.CENTER);//CENTER_LEFT,CENTER_RIGHT
//label.setAlignment(Pos.BOTTOM_LEFT);
//label.setAlignment(Pos.TOP_RIGHT);

4、透明度

label.setOpacity(0.5);

5、旋转

//以label的中点为坐标轴顺时针旋转70度
label.setRotate(70);

6、平行垂直移动

//横向平移
label.setTranslateX(10);
//纵向平移
label.setTranslateY(10);

关闭提示窗口

//关掉平台界面设置默认的关闭方法
Platform.setImplicitExit(false);
//给stage设置一个关闭动作的响应
//利用lamda表达式,让event去消费这个请求
stage.setOnCloseRequest(event ->{event.consume();//创建一个提示响应窗口Alert alert = new Alert (Alert.AlertType.CONFIRMATION);//确认窗口//Alert alert = new Alert (Alert.AlertType.ERROR);   错误提示窗口//Alert alert = new Alert (Alert.AlertType.INFORMATION); 通知窗口//Alert alert = new Alert (Alert.AlertType.WARNING);   警告窗口alert.setTitle("退出");alert.setContentText("您确定要退出吗?");alert.setHeaderText(null);//ButtonType类用于指定应在对话框中向用户显示哪些按钮//如果用户点击确定关闭,则让平台界面关闭程序Optional<ButtonType> result = alert.showAndWait();if(result.get()==ButtonType.OK){Platform.exit();}
})

多窗口的跳转

多窗口的跳转是通过将不同的scene放在stage中,也就是要针对不同的button设置点击事件,在事件中更改stage的scene

     //页面1Label label = new Label("你好呀,今天过的怎么样?");label.setLayoutX(70);label.setLayoutY(50);Button b1 = new Button("button1");b1.setLayoutX(90);b1.setLayoutY(100);//在布局中添加好 并放在scene中AnchorPane root = new AnchorPane();root.getChildren().addAll(label,b1);Scene scene = new Scene(root,270,470);//页面2Label l1 = new Label("要记得一直开心哦~");l1.setLayoutX(80);l1.setLayoutY(50);Button b2 = new Button("button2");b2.setLayoutX(95);b2.setLayoutY(100);AnchorPane root1 = new AnchorPane();root1.getChildren().addAll(l1,b2);Scene scene1 = new Scene(root1,270,470);//点击事件的页面跳转b1.setOnAction(event -> {primaryStage.setScene(scene1);});b2.setOnAction(event -> {primaryStage.setScene(scene);});

有关Color设置的三种方式

     //创建一个圆,并设置坐标及半径Circle circle = new Circle();circle.setCenterX(250);circle.setCenterY(250);circle.setRadius(100);//使用rgb参数设置颜色circle.setFill(Color.rgb(255,0,0));//吸取的色块色值circle.setFill(Color.web("#f66a08"));//直接调用颜色的静态常量circle.setFill(Color.PURPLE);

有关Font设置字体、字重、大小

Label label = new Label("你好,世界");
label.setLayoutX(150);
label.setLayoutY(200);
//font有不同的重载方法 直接放double 设置字体大小
label.setFont(new Font(30));
//放字符串和double  是windows系统里有的字体名字和字体大小
label.setFont(Font.font("汉仪综艺体简",50));
//放字符串 ,字重(加粗,斜体)  和 字体大小
label.setFont(Font.font("汉仪综艺体简", FontWeight.BOLD,70));
//如果系统没有这个字体,需要找到这个字体文件的路径,使用loadfont.file下的绝对路径绝对路径!!!
label.setFont(Font.loadFont("file:D:\\Pro\\WorkSpace\\IdeaProjects\\Lesson\\src\\com\\yu\\abc\\ColorFontImage\\HYZYTJ.ttf",90));
//磁盘目录或者项目根目录开始
//file:src/com/yu/abc/ColorFontImage/HYZYTJ.ttf
//file:D:\Pro\WorkSpace\IdeaProjects\Lesson\src\com\yu\abc\ColorFontImage\HYZYTJ.ttf

有关Image加载图片

image图片需要放在imageView里面展示

ImageView imageView = new ImageView();
Image image = new Image("4.png");//这个路径是从src开始的
imageView.setImage(image);

总结常用的Javafx功能及用法(上)相关推荐

  1. 总结常用的Javafx功能及用法(下)

    总结常用的Javafx功能及用法 控件的绑定和监听 事件驱动编程 什么是事件驱动 创建一个点击移动事件 创建一个拖拽移动文件的事件 FXML布局 Scene Builder的使用 Controller ...

  2. mysql 存储引擎作用_MySQL常用存储引擎功能与用法详解

    MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV. ...

  3. 数值选择器(NumberPicker)的功能与用法

     数值选择器用于让用户输入数值,用户既可以通过键盘输入数值,也可以通过拖动来选择数值.使用该组件常用如下三个方法. setMinValue(int minVal):设置该组件支持的最小值. set ...

  4. iOS常用第三方库大全,史上最全第三方库收集

    下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableVie ...

  5. 网络工具nc的常见功能和用法

    文章目录 前言 nc netcat ncat nc的用法 测试udp端口是否可用 端口扫描 一对一聊天 传输文件 端口转发 总结 前言 nc 是一个Linux环境下常用的工具命令,可以用来帮助开发者查 ...

  6. mysql基本语法 外键_mysql外键基本功能与用法详解

    本文实例讲述了Mysql外键基本功能与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是外键 外键的增加 外键的修改和删除 外键的约束模式 首发日期:2018-04-12 什么是外键: 外键就 ...

  7. 鸿蒙应用开发 | 按钮(Button)组件 的功能与用法

    大家好,我是你们的朋友 朋哥,今天开始朋哥开始研究鸿蒙了,定时会写一些文章分享给大家,希望多多提意见. 上一篇原创文章 解读了 文本框(Text)和编辑框(TextField)的功能与用法. 没有跟上 ...

  8. Javascript自定义事件功能与用法实例分析

    原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...

  9. mysql中外键的作用是什么_mysql外键基本功能与用法详解

    本文实例讲述了mysql外键基本功能与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是外键 外键的增加 外键的修改和删除 外键的约束模式 首发日期:2018-04-12 什么是外键: 外键就 ...

最新文章

  1. microsoft .net framework专题汇总
  2. Atlas Of Cardiovascular Emergencies 心血管急症图集
  3. 【深度学习】深度学习中的知识蒸馏技术(上)简介
  4. 置信学习:让样本中的“脏数据“原形毕露
  5. opensuse x64下编译Ice源码(以编译c++为例)
  6. html如何显示上传进度条,HTML5 Ajax文件上传进度条如何显示
  7. 【渝粤教育】国家开放大学2018年秋季 0043-22T计算机文化 参考试题
  8. 【LDPC系列2】基于MATLAB中LDPC编译码器对象的图像传输通信系统仿真(IEEE 802.16e标准协议基础矩阵)
  9. 互联网晚报 | 4月14日 星期四 | 山东六地银行下调房贷利率;​茅台一瓶降1000元;康师傅回应老坛酸菜面重新上架;...
  10. linux下用gtk+写比赛赌博GUI小游戏
  11. java持续集成soapui_接口自动化测试持续集成--Soapui接口功能测试参数化
  12. echarts vue 柱状图实例_「源码学习」适用于 Vue3 的 ECharts 包装组件
  13. TCPIP详解 卷一核心概念整理
  14. 哪个网站可以免费学计算机办公软件,有没有可以免费学习办公软件的网站?
  15. 绩效考核如何尽量公正
  16. 制作u盘winpe启动盘_U盘启动盘如何制作?图文教程详解!
  17. Python 与 SQL 这样超强结合,处理数据才是爆赞
  18. 安装Cpython解释器(day02)
  19. springmvc返回不带引号的字符串
  20. 【BLDC驱动】分析同步续流与体二极管续流

热门文章

  1. 基于jsp和servlet的蛋糕店售卖网站商城系统javaweb点心铺源码mysql
  2. 使用python执行uds诊断
  3. 流媒体技术基础-流媒体服务与框架
  4. sqlplus命令无需监听服务就可以登录本地数据库的登录方式的研究
  5. 【chatGPT】01 数组、二维数组在不同语言中的存储方式
  6. Ansible Tower01
  7. 松下PLC FP-XH C30T 和昆仑通态触摸屏 TPC7022Ex 程序下载步骤
  8. 昂达vi40精英版刷Linux,昂达vi40旗舰版刷机教程【图解】
  9. 2020年的年终总结(仰望星空、脚踏实地)
  10. GoSURF、MyIe2、小树浏览肉搏篇(转)