Button類是JavaFX程序包的一部分,它可以具有文本或圖形,或兩者都有。
JavaFX中的按鈕可以是三種不同的類型:
- 普通按鈕:普通按鈕
- 默認按鈕:接收鍵盤VK_ENTER的默認按鈕
- 取消按鈕:按下鍵盤VK_ENTER的取消按鈕
當按下按鈕時,將發送一個動作事件。此Action事件可以由EventHandler管理。按鈕也可以通過實現EventHandler來處理MouseEvent來響應鼠標事件。
Button類的構造方法是:
- Button():創建一個帶有空字符串作為其標簽的按鈕。
- Button(String t):創建一個帶有指定文本作為標簽的按鈕。
- 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的用法。
- 程序創建一個按鈕並將其添加到舞台:該程序將創建一個名稱為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); } }
輸出:
- 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); } }
輸出:
- 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); } }
輸出
- 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); } }
輸出:
- 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
相關用法
- JavaFX 類 Box用法及代碼示例
- JavaFX 類 Arc用法及代碼示例
- JavaFX 類 DatePicker用法及代碼示例
- JavaFX 類 QuadCurve用法及代碼示例
- JavaFX 類 RadioButton用法及代碼示例
- JavaFX 類 ColorPicker用法及代碼示例
- JavaFX 類 Alert用法及代碼示例
- JavaFX 類 Ellipse用法及代碼示例
- JavaFX 類 Polyline用法及代碼示例
- JavaFX 類 CubicCurve用法及代碼示例
- JavaFX 類 CheckMenuItem用法及代碼示例
- JavaFX 類 Line用法及代碼示例
- JavaFX 類 Circle用法及代碼示例
- JavaFX 類 PointLight用法及代碼示例
- JavaFX 類 ContextMenu用法及代碼示例
注:本文由純淨天空篩選整理自andrew1234大神的英文原創作品 JavaFX | Button with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。