【问题标题】:Javafx getting input from TextFieldJavafx 从 TextField 获取输入
【发布时间】:2015-11-20 01:47:21
【问题描述】:

这是我当前的代码,它所做的只是为我制作的计算器设置一个 GUI 界面。我希望用户输入两个值,然后当按下“求和”按钮时,它将这两个值相加并显示在“求和:”文本字段中。我正在试验 JavaFX,不胜感激。

import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.stage.*;
import javafx.scene.layout.*;
import javafx.geometry.*;
import javafx.event.*;


public class SimpleCalculator extends Application
{
    public void start(Stage myStage)
    {

        myStage.setTitle("Calculator");

        GridPane rootNode= new GridPane();
        rootNode.setPadding( new Insets( 15 ) );
        rootNode.setHgap( 5 );
        rootNode.setVgap( 5 );
        rootNode.setAlignment( Pos.CENTER );

        Scene myScene = new Scene( rootNode, 300, 200 );

        rootNode.add( new Label("First Value:"), 0,0); rootNode.add(new TextField(), 1, 0);
        rootNode.add( new Label ("Second Value:"), 0, 1); rootNode.add(new TextField(), 1, 1);
        rootNode.add( new Label("Sum is:"), 0, 2); rootNode.add(new TextField(), 1, 2);         
        Button aButton = new Button("Calculate"); rootNode.add(aButton, 1, 3);
        rootNode.setHalignment(aButton, HPos.LEFT);

        myStage.setScene( myScene);

        myStage.show();     
    }


    public static void main( String [] args)
    {
        launch(args);   
    }

}

【问题讨论】:

    标签: button input javafx textfield


    【解决方案1】:

    这主要是一个 Java 编程问题。 如果你想检索TextField 的值,myTextField.getText() 方法就是你要找的。​​p>

    import javafx.application.Application;
    import javafx.geometry.HPos;
    import javafx.geometry.Insets;
    import javafx.geometry.Pos;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.Label;
    import javafx.scene.control.TextField;
    import javafx.scene.layout.GridPane;
    import javafx.stage.Stage;
    
    public class SimpleCalculator extends Application {
        @Override
        public void start(Stage myStage) {
    
            myStage.setTitle("Calculator");
    
            GridPane rootNode = new GridPane();
            rootNode.setPadding(new Insets(15));
            rootNode.setHgap(5);
            rootNode.setVgap(5);
            rootNode.setAlignment(Pos.CENTER);
    
            Scene myScene = new Scene(rootNode, 300, 200);
    
            rootNode.add(new Label("First Value:"), 0, 0);
            TextField firstValue = new TextField();
            rootNode.add(firstValue, 1, 0);
            rootNode.add(new Label("Second Value:"), 0, 1);
            TextField secondValue = new TextField();
            rootNode.add(secondValue, 1, 1);
            rootNode.add(new Label("Sum is:"), 0, 2);
            Button aButton = new Button("Calculate");
            rootNode.add(aButton, 1, 2);
            GridPane.setHalignment(aButton, HPos.LEFT);
            TextField result = new TextField();
            result.setEditable(false);
            rootNode.add(result, 1, 3);
    
            aButton.setOnAction(e -> {
                Integer value1 = Integer.valueOf(firstValue.getText());
                Integer value2 = Integer.valueOf(secondValue.getText());
                Integer r = value1 + value2;
                result.setText(r.toString());
            });
    
            myStage.setScene(myScene);
    
            myStage.show();
        }
    
        public static void main(String[] args) {
            launch(args);
        }
    
    }
    

    为了有更好的用户界面,你可以允许用户只输入数字

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多