JavaFx基礎操作【個人筆記】

聚繁大BUG發表於2018-07-27

 

1.禁止窗體縮放

primaryStage.setResizable(true);//禁止窗體縮放

2.去掉窗體邊框(包括關閉、最大化、最小化按鈕等等)

primaryStage.initStyle(StageStyle.UNDECORATED);

3.載入使用FXML檔案

Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("fxml/Main.fxml"));//getClass().getClassLoader().getResource() 和 getClass().getResource()的區別,在不在根目錄下

4.寬度自適應繫結

menuBar.prefWidthProperty().bind(pane.widthProperty());//MenuBar控制元件寬度繫結與Pane佈局寬度,寬度隨視窗縮放

5.TableView控制元件繫結資料

List<Spider> spiderList=new ArrayList<Spider>();
        spiderList.add(new Spider(1,"百度","最大的中文搜尋引擎","https://www.baidu.com"));
        spiderList.add(new Spider(2,"百度2","最大的中文搜尋引擎2","https://www.baidu.com2https://www.baidu.comhttps://www.baidu.comhttps://www.baidu.com"));
        spiderList.add(new Spider(3,"百度3","最大的中文搜尋引擎3","https://www.baidu.com3"));
        spiderList.add(new Spider(4,"百度4","最大的中文搜尋引擎4","https://www.baidu.com4"));
        ObservableList<Spider> observableList= FXCollections.observableList(spiderList);
        tableView.setItems(observableList);

6.新彈出視窗在最上層且不可點選原先視窗

stage.initModality(Modality.APPLICATION_MODAL);
stage.showAndWait();

7.彈出新的窗體(直接掉用這個類的這個方法即可彈出新窗體)

public class NewStage {
    public static void showStage() {
        Stage stage=new Stage();
        stage.initModality(Modality.APPLICATION_MODAL);
        Pane pane= null;
        try {
            pane = FXMLLoader.load(NewStage.class.getResource("newStage.fxml"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        Scene scene=new Scene(pane,300,150);
        stage.setScene(scene);
        stage.showAndWait();
    }
}

8.切換新的場景(窗體設定哪個場景就切換場景)

Scene scene1=new Scene(pane,300,150);
Scene scene2=new Scene(pane,300,150);
primaryStage.setScene(scene1);//切換場景1
primaryStage.setScene(scene2);//切換場景2

9.FXML與Controller事件繫結

<Button layoutX="192.0" layoutY="289.0" mnemonicParsing="false" text="顯示通知" onAction="#toastBtn" />
public void toastBtn(ActionEvent event){
        SystemToast.toast();
    }

10.最小化

stage.setIconified(true);

11.全屏

stage.setFullScreen(true);

12.懸浮在所有窗體最頂層

stage.setAlwaysOnTop(true);

13.獲取螢幕解析度

Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();//獲取螢幕寬度高度
        primaryScreenBounds.getWidth();//螢幕寬度
        primaryScreenBounds.getHeight();//螢幕高度

待續...........

相關文章