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  是否將其子類的位置調整為像素邊界
  •  剩下的就是事件了,這里就不多介紹了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM