当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。