Javafx 入门教程(一)

一、Stage 舞台

  stage 是窗口,首先当然创建一个窗口。下面我们来探索窗口都有哪些功能。其中它继承了window ,所以带有window 的功能,其中带有 Property 就是监听的意思

  • 窗口开始显示的位置  primaryStage.setAlwaysOnTop(true)  是否显示在顶部
  • 全屏提醒(b必须要有screen)   primaryStage.setFullScreenExitHint("提醒")
  •  最大(小)高度和宽度  primaryStage.setMaxHeight(800);   primaryStage.setMaxWidth(800);
  • 是否可调整大小   primaryStage.setResizable(false);
  • 设置标题        primaryStage.setTitle("标题")
  • 页面初始话的时候是最小化的  primaryStage.setIconified(true)
  • 设置窗口的图标  primaryStage.getIcons().add(new Image(path))
  • 关闭窗口  primaryStage.close() 
  • 菜单栏中样式控制   如 使用UTILITY 只有一个关闭的按钮  primaryStage.initStyle(StageStyle.DECORATED)
  • scene 跳过,基本没有可用的 

二、Screen 的使用

  这个一般作用不大,可以获取到计算机屏幕的信息。

Screen primary = Screen.getPrimary();
        double dpi = primary.getDpi();
        Rectangle2D bounds = primary.getBounds();
        Rectangle2D visualBounds = primary.getVisualBounds();
        double maxX = bounds.getMaxX();
        double maxY = bounds.getMaxY();
        double vmaxX = visualBounds.getMaxX();
        double vmaxY = visualBounds.getMaxY();
        System.out.println("屏幕dpi:"+dpi);
        System.out.println("屏幕大小:"+maxX+","+maxY);
        System.out.println("可视大小:"+vmaxX+","+vmaxY);

 三、以AnchorPane为例说明基本属性

  用这个做一个示范,先探索里面的方法设置。不同pane,里面的作用不同。首先根据 SceneBuilder 格式进行探索,为了方便,我们需要在里面放几个按钮

  1.通用属性

  • 可以对子节点的位置进行设置,当这个设置之后,子节点有些自己的设置就会失效。如 AnchorPane.bottomAnchor="20" AnchorPane.leftAnchor="20" AnchorPane.rightAnchor="20" AnchorPane.topAnchor="20" 这个设置全之后,子组件会随着父组件的变化而变化。在图形化工具中如下(这个是子类的图形页面),一定要设置完全,否则失效
  • 在拖动的过程中,也可以设置 最大大小和最小的大小发现不起作用,位置也不起作用,就是上面的影响了
  • 如果没有设置上面的属性,那么可以使用当前大小,以及位置,不会随着父类拖动而改变,但是最大和最小没有效果。
  • disable  节点的禁用状态,禁用后,不会触发事件
  • opacity  节点的透明度
  • setNodeOrientation(NodeOrientation.LEFT_TO_RIGHT); 指定节点的绘制方向, INHERIT 标识跟从父类方向
  • setVisible(true) 设置节点是否可见  不可见的节点不会有鼠标或者键盘的事件
  • setFocusTraversable(true); 按照官方文档定义,焦点移动遍历。 用  shift + tab 键组合使用,可能是我用的按钮的原因,这个功能没有测试出来 
  • setCacheShape(true)  定义区域背景的颜色是稳定的,可以使用缓存
  • setCenterShape  定义形状是否以区域的宽度和高度为中心
  • setScaleShape 定义形状是否缩放匹配区域大小
  • setOpaqueInsets 定义绘制完全不透明像素的区域的区域   这个功能还没有测试出来    
  • setCursor  定义鼠标指针的形状
  • setEffect 设置显示的效果  (绚丽的特效)
  • setStyle 设置样式,要使用 javafx 的css 样式标准
  • getStylesheets().add   添加css 文件
  • getStyleClass().add   添加 相当于html中 class属性 
  • setId()  类似于 css 中id属性 
  • setBlendMode  用于将这个单独的节点混合到它后面的场景中
  • setCache  是否开启缓存 
  • setCacheHint 缓存提示
  • setDepthTest 是否启动深度测试   如果禁止,将不再使用深度缓存区
  • setMouseTransparent  鼠标是否透明   如果为真,表示不触发鼠标事件
  • setPickOnBounds 定义如鼠标的事件边界
  • setAccessibleRole 此节点可访问角色
  • setAccessibleHelp  此节点的可访问帮助文本。  如果有工具提示,则使用该文档
  • setAccessibleText  设置屏幕阅读器将要显示的文本
  • padding   节点的内边距
  • min width   最小宽度    prefwidth 设置宽度    max  width 最大宽度      最大最小容易发生冲突
  • layout X    相对父类的横的坐标    layout Y  纵坐标
  • rotate 旋转度
  • rotation axis   按照什么方向进行旋转  x   y  z
  • scale X     定义 X 轴的缩放因子 
  • isSnapToPixel  是否将其子类的位置调整为像素边界
  •  剩下的就是事件了,这里就不多介绍了
原文地址:https://www.cnblogs.com/chengyangyang/p/11814034.html