繁体   English   中英

在 javafx 中向我的计算器添加文本字段和标签

[英]adding a textfield and a label to my calculator in javafx

我正在尝试创建一个简单的计算器,到目前为止我添加了我的计算按钮。 现在我需要添加一些描述它们的文本字段和标签。

我在添加文本字段和与之关联的标签时遇到问题。

我尝试了这个示例代码,看看它是否可以工作,但它给了我一个错误。

 Label label1 = new Label("sample text");
 TextField textField = new TextField ();
 HBox hb = new HBox();

 public class Simplecalculator extends Application {

private TextField tfAnnualInterestRate = new TextField();

//first textfield
 Label label1 = new Label("sample text");
 TextField textField = new TextField ();
 HBox hb = new HBox();

@Override
public void start(Stage primaryStage) throws Exception {

    int num1 = 0;
    int num2 = 0;
    double result = 0;

    //BUTTONS
    Button btn1 = new Button("Add");        
    Label label1 = new Label("Name:");
    Button btn2 = new Button("Subtract");
    Button btn3 = new Button("Multiply");
    Button btn4 = new Button("Divide");
    HBox hbox = new HBox();
    hbox.getChildren().addAll(btn1, btn2, btn3, btn4);
    BorderPane root = new BorderPane(); 
    root.setBottom(hbox);
    hbox.setAlignment(Pos.BOTTOM_CENTER);
    hbox.setSpacing(10); 

    primaryStage.setTitle("Border Layout");
    primaryStage.setScene(new Scene(root, 500, 500));
    primaryStage.show();       
   }  
    public static void main(String[] args) {
    launch(args);  
    }
  }

我无法理解这个问题。 但这里是 JavaFX 中的计算器实现代码


package FX;

  
import static javafx.application.Application.launch;
import javafx.event.ActionEvent;  
import javafx.event.EventHandler;  
import javafx.scene.control.Button;  
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Insets;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.geometry.Pos;
import javafx.scene.control.ComboBox;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.VBox;

public class Calculator extends Application{

    @Override
    public void start(Stage stage) throws Exception {
        
        
        TextField op =new TextField();
        op.setMaxWidth(200);
        TextField op2 =new TextField();
        op2.setMaxWidth(200);

        
        ComboBox<String> combo = new ComboBox<String>();
        combo.setPromptText("Select Operation");
        ObservableList<String> list = combo.getItems();
        list.add("Add");
        list.add("Subtract");
        list.add("Multiply");
        list.add("Divide");
        
        Button submit=new Button("Submit");
        
        Label lb=new Label();
        lb.setTextFill(Color.BLUE);
        lb.setFont(new Font("PT Narrow", 32));
                       
//ROOT        
        VBox root=new VBox(8);
        root.setAlignment(Pos.CENTER);
       
//EVENT 
        submit.setOnAction(new EventHandler<ActionEvent>() { 
                
            @Override
            public void handle(ActionEvent event) {   
                
                if((op.getText()!= null && op2.getText()!= null )&&(op.getText().matches("\\d*")&&(op2.getText().matches("\\d*")))&&combo.getValue()!=null){
                    float i=Float.parseFloat(op.getText());
                    float j=Float.parseFloat(op2.getText());
                    String a=combo.getValue();
                    
                    if(a.equals("Add"))
                        lb.setText(Float.toString(i+j));
                    if(a.equals("Subtract"))
                        lb.setText(Float.toString(i-j));
                    if(a.equals("Multiply"))
                        lb.setText(Float.toString(i*j));
                    if(a.equals("Divide"))
                        lb.setText(Float.toString(i/j));
                    
                    
                }
                else{
                    lb.setText("INVALID INPUT");
                    lb.setTextFill(Color.RED);
                     lb.setFont(new Font("PT Narrow", 32));
                    
                }
                              
       
               }  
            });          

//BACKGROUND        
      root.setBackground(new Background(new BackgroundFill(Color.LIGHTBLUE, CornerRadii.EMPTY, Insets.EMPTY)));

        
//ADDING TO ROOT GROUP    
        root.getChildren().addAll(op,op2,combo,submit,lb); 
           
//SCENE        
        Scene scene = new Scene(root,500,500);
        stage.setScene(scene);
         
//STAGE       
        stage.setTitle("Calculator");    
        stage.show();        
    }
    public static void main(String[] args) {
        launch(args);
    }
    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM