當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaFX 類 Button用法及代碼示例


Button類是JavaFX程序包的一部分,它可以具有文本或圖形,或兩者都有。

JavaFX中的按鈕可以是三種不同的類型:

  1. 普通按鈕:普通按鈕
  2. 默認按鈕:接收鍵盤VK_ENTER的默認按鈕
  3. 取消按鈕:按下鍵盤VK_ENTER的取消按鈕

當按下按鈕時,將發送一個動作事件。此Action事件可以由EventHandler管理。按鈕也可以通過實現EventHandler來處理MouseEvent來響應鼠標事件。


Button類的構造方法是

  1. Button():創建一個帶有空字符串作為其標簽的按鈕。
  2. Button(String t):創建一個帶有指定文本作為標簽的按鈕。
  3. Button(String t, Node g):創建一個帶有指定文本和圖標標簽的按鈕。

常用方法

方法 說明
setCancelButton(boolean v) 設置屬性cancelButton的值。
setDefaultButton(boolean v) 設置屬性defaultButton的值
isDefaultButton() 獲取屬性defaultButton的值。
isCancelButton() 獲取屬性cancelButton的值。
cancelButtonProperty() 取消按鈕是接收鍵盤VK_ESC按下的按鈕
defaultButtonProperty() 默認按鈕是接收鍵盤VK_ENTER按下的按鈕
createDefaultSkin() 為此控件創建默認外觀的新實例。

以下程序說明了JavaFX中Button的用法。

  1. 程序創建一個按鈕並將其添加到舞台:該程序將創建一個名稱為b的按鈕。該按鈕將在場景內創建,而場景又將托管在舞台內。函數setTitle()用於為舞台提供標題。然後,創建一個平鋪窗格,在其上調用addChildren()方法以將按鈕附加到場景內。最後,調用show()方法以顯示最終結果。
    // Java Program to create a button and add it to the stage 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.StackPane; 
    import javafx.stage.Stage; 
    public class button extends Application { 
      
        // launch the application 
        public void start(Stage s) 
        { 
            // set title for the stage 
            s.setTitle("creating buttons"); 
      
            // create a button 
            Button b = new Button("button"); 
      
            // create a stack pane 
            StackPane r = new StackPane(); 
      
            // add button 
            r.getChildren().add(b); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    輸出

  2. Java程序創建按鈕並向其添加事件處理程序:該程序創建一個以名稱b表示的按鈕。該按鈕將在場景內創建,而場景又將托管在舞台內。我們將創建一個標簽來顯示是否按下按鈕。函數setTitle()用於為舞台提供標題。然後創建一個平鋪窗格,在其上調用addChildren()方法以將按鈕和標簽附加到場景內。最後,調用show()方法以顯示最終結果。我們將創建一個事件處理程序來處理按鈕事件。事件處理程序將使用setOnAction()函數添加到按鈕。
    // Java program to create a button and add event handler to it 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.control.Label; 
    import javafx.stage.Stage; 
    public class button_1 extends Application { 
      
        // launch the application 
        public void start(Stage s) 
        { 
            // set title for the stage 
            s.setTitle("creating buttons"); 
      
            // create a button 
            Button b = new Button("button"); 
      
            // create a stack pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            Label l = new Label("button not selected"); 
      
            // action event 
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    l.setText("   button   selected    "); 
                } 
            }; 
      
            // when button is pressed 
            b.setOnAction(event); 
      
            // add button 
            r.getChildren().add(b); 
            r.getChildren().add(l); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    輸出

  3. Java程序創建帶有圖像的按鈕並向其添加事件處理程序:該程序創建一個按鈕,按鈕上以名稱b表示圖像。將使用導入圖像的文件輸入流將圖像包括在內。然後,我們將使用文件輸入流的對象創建一個圖像,然後使用該圖像文件創建一個圖像視圖。該按鈕將在場景內創建,而場景又將托管在舞台內。我們將創建一個標簽來顯示是否按下按鈕。函數setTitle()用於為舞台提供標題。然後創建一個平鋪窗格,在其上調用addChildren()方法以將按鈕和標簽附加到場景內。最後,調用show()方法以顯示最終結果。我們將創建一個事件處理程序來處理按鈕事件。事件處理程序將使用setOnAction()函數添加到按鈕。
    // Java Program to create a button with a image and 
    // add event handler to it 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.*; 
    import javafx.scene.image.*; 
    import java.io.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.control.Label; 
    import javafx.stage.Stage; 
    import java.net.*; 
    public class button_2 extends Application { 
      
        // launch the application 
        public void start(Stage s) throws Exception 
        { 
            // set title for the stage 
            s.setTitle("creating buttons"); 
      
            // create a input stream 
            FileInputStream input = new FileInputStream("f:\\gfg.png"); 
      
            // create a image 
            Image i = new Image(input); 
      
            // create a image View 
            ImageView iw = new ImageView(i); 
      
            // create a button 
            Button b = new Button("", iw); 
      
            // create a stack pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            Label l = new Label("button not selected"); 
      
            // action event 
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    l.setText("button selected    "); 
                } 
            }; 
      
            // when button is pressed 
            b.setOnAction(event); 
      
            // add button 
            r.getChildren().add(b); 
            r.getChildren().add(l); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    輸出

  4. Java程序來創建帶有圖像和文本的按鈕,並向其中添加事件處理程序

    該程序創建一個帶有圖像和名稱b的按鈕。將使用導入圖像的文件輸入流將圖像包括在內。然後我們將使用文件輸入流的對象創建一個圖像,然後使用該圖像文件創建一個圖像視圖,該按鈕將在場景內創建,該場景又將托管在舞台內。我們將創建一個標簽以顯示是否按下按鈕。函數setTitle()用於為舞台提供標題。然後創建一個平鋪窗格,在其上調用addChildren()方法以將按鈕和標簽附加到場景內。最後,調用show()方法以顯示最終結果。我們將創建一個事件處理程序來處理按鈕事件。事件處理程序將使用setOnAction()函數添加到按鈕。

    // Java Program to create a button with a image 
    // and text and add event handler to it 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.*; 
    import javafx.scene.image.*; 
    import java.io.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.control.Label; 
    import javafx.stage.Stage; 
    import java.net.*; 
    public class button_3 extends Application { 
      
        // launch the application 
        public void start(Stage s) throws Exception 
        { 
            // set title for the stage 
            s.setTitle("creating buttons"); 
      
            // create a input stream 
            FileInputStream input = new FileInputStream("f:\\gfg.png"); 
      
            // create a image 
            Image i = new Image(input); 
      
            // create a image View 
            ImageView iw = new ImageView(i); 
      
            // create a button 
            Button b = new Button("Button", iw); 
      
            // create a stack pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            Label l = new Label("button not selected"); 
      
            // action event 
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    l.setText("button selected    "); 
                } 
            }; 
      
            // when button is pressed 
            b.setOnAction(event); 
      
            // add button 
            r.getChildren().add(b); 
            r.getChildren().add(l); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    輸出

  5. Java程序創建默認按鈕和取消按鈕:該程序創建一個由名稱b和b1表示的Button。按鈕b將充當取消按鈕,該按鈕將響應鍵盤的退出鍵,而按鈕b1將充當默認按鈕,其將響應輸入鍵盤的鍵)。該按鈕將在場景內創建,而場景又將托管在舞台內。我們將創建一個標簽來顯示按下了哪個按鈕。函數setTitle()用於為舞台提供標題。然後創建一個平鋪窗格,在其上調用addChildren()方法以將按鈕和標簽附加到場景內。最後,調用show()方法以顯示最終結果。我們將創建一個事件處理程序來處理按鈕事件。事件處理程序將使用setOnAction()函數添加到按鈕。
    // Java program to create a default button and a 
    // cancel button and add event handler to it 
    import javafx.application.Application; 
    import javafx.scene.Scene; 
    import javafx.scene.control.Button; 
    import javafx.scene.layout.*; 
    import javafx.event.ActionEvent; 
    import javafx.event.EventHandler; 
    import javafx.scene.control.Label; 
    import javafx.stage.Stage; 
    public class button_4 extends Application { 
      
        // launch the application 
        public void start(Stage s) 
        { 
            // set title for the stage 
            s.setTitle("creating buttons"); 
      
            // create a button 
            Button b = new Button("cancel button"); 
      
            // set cancel button 
            b.setCancelButton(true); 
      
            // create a button 
            Button b1 = new Button("default button"); 
      
            // set default button 
            b1.setDefaultButton(true); 
      
            // create a stack pane 
            TilePane r = new TilePane(); 
      
            // create a label 
            Label l = new Label("button not selected"); 
      
            // action event 
            EventHandler<ActionEvent> event = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    l.setText("  cancel  button    selected    "); 
                } 
            }; 
            EventHandler<ActionEvent> event1 = new EventHandler<ActionEvent>() { 
                public void handle(ActionEvent e) 
                { 
                    l.setText("  default button   selected    "); 
                } 
            }; 
      
            // when button is pressed 
            b.setOnAction(event); 
            b1.setOnAction(event1); 
      
            // add button 
            r.getChildren().add(b); 
            r.getChildren().add(b1); 
            r.getChildren().add(l); 
      
            // create a scene 
            Scene sc = new Scene(r, 200, 200); 
      
            // set the scene 
            s.setScene(sc); 
      
            s.show(); 
        } 
      
        public static void main(String args[]) 
        { 
            // launch the application 
            launch(args); 
        } 
    }

    輸出

注意:以上程序可能無法在在線IDE中運行,請使用離線編譯器。

參考:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Button.html



相關用法


注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | Button with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。