栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java语言程序设计【5】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java语言程序设计【5】

第十五章
  • ControlCircle
  • 15.4 创建简单的计算器

ControlCircle

注册处理器和处理事件

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class ControlCircle extends Application {
  private CirclePane circlePane = new CirclePane();

  @Override // Override the start method in the Application class
  public void start(Stage primaryStage) {
    // Hold two buttons in an HBox
    HBox hBox = new HBox();
    hBox.setSpacing(10);
    hBox.setAlignment(Pos.CENTER);
    Button btEnlarge = new Button("Enlarge");
    Button btShrink = new Button("Shrink");
    hBox.getChildren().add(btEnlarge);
    hBox.getChildren().add(btShrink);
    
    // Create and register the handler
    btEnlarge.setOnAction(new EnlargeHandler());
    btShrink.setOnAction(new ShrinkHandler());

    BorderPane borderPane = new BorderPane();
    borderPane.setCenter(circlePane);
    borderPane.setBottom(hBox);
    BorderPane.setAlignment(hBox, Pos.CENTER);
    
    // Create a scene and place it in the stage
    Scene scene = new Scene(borderPane, 200, 150);
    primaryStage.setTitle("ControlCircle"); // Set the stage title
    primaryStage.setScene(scene); // Place the scene in the stage
    primaryStage.show(); // Display the stage
  }
  
  class EnlargeHandler implements EventHandler {
    @Override // Override the handle method
    public void handle(ActionEvent e) {
      circlePane.enlarge();
    }
  }

class ShrinkHandler implements EventHandler {
  @Override // Override the handle method
  public void handle(ActionEvent e) {
    circlePane.shrink();
  }
}
}
class CirclePane extends StackPane {
  private Circle circle = new Circle(50); 
  
  public CirclePane() {
    getChildren().add(circle);
    circle.setStroke(Color.BLACK);
    circle.setFill(Color.WHITE);
  }
  
  public void enlarge() {
    circle.setRadius(circle.getRadius() + 2);
  }
  
  public void shrink() {
    circle.setRadius(circle.getRadius() > 2 ? 
      circle.getRadius() - 2 : circle.getRadius());
  }
}

15.4 创建简单的计算器

编写程序完成加法、减法、乘法和除法操作

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
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.scene.layout.StackPane;
import javafx.stage.Stage;

import java.util.Scanner;

public class Text extends Application {

    private TextField text1 = new TextField();
    private TextField text2 = new TextField();
    private TextField text3 = new TextField();
    private Button btAdd = new Button("Add");
    private Button btSub = new Button("Subtract");
    private Button btMult = new Button("Multiply");
    private  Button btDiv = new Button("Divide");

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

    @Override
    public void start(Stage primaryStage) {
        GridPane gridPane = new GridPane();

       // text1.setonAction(e->getTextClass());
        // text2.setonAction(new setHandler());

        gridPane.add(new Label("Number1:"),0,0);
        gridPane.add(text1,1,0);
        gridPane.add(new Label("Number2:"),2,0);
        gridPane.add(text2,3,0);
        gridPane.add(new Label("Result:"),4,0);
        gridPane.add(text3,5,0);
        gridPane.add(btAdd,0,1);
        gridPane.add(btSub,1,1);
        gridPane.add(btMult,2,1);
        gridPane.add(btDiv,3,1);

        btAdd.setOnAction(e->Add());
        btSub.setOnAction(event -> Subtract());
        btMult.setOnAction(event -> Multiply());
        btDiv.setOnAction(event -> Divide());

        Scene scene = new Scene(gridPane,200,50);
        primaryStage.setTitle("Exercise15_04");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    private void  Add(){
        double res = Double.parseDouble(text1.getText()) + Double.parseDouble(text2.getText());
        text3.setText(String.format("%.2f",res));
    }
    private void  Subtract(){
        double res = Double.parseDouble(text1.getText()) - Double.parseDouble(text2.getText());
        text3.setText(String.format("%.2f",res));
    }
    private void  Multiply(){
        double res = Double.parseDouble(text1.getText()) * Double.parseDouble(text2.getText());
        text3.setText(String.format("%.2f",res));
    }
    private void  Divide(){
        double res = Double.parseDouble(text1.getText()) / Double.parseDouble(text2.getText());
        text3.setText(String.format("%.2f",res));
    }

    //内部类
   
}

运行结果:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
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.BorderPane;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

import java.util.Scanner;

public class Text extends Application {

    private TextField text1 = new TextField();
    private TextField text2 = new TextField();
    private TextField text3 = new TextField();
    private Button btAdd = new Button("Add");
    private Button btSub = new Button("Subtract");
    private Button btMult = new Button("Multiply");
    private  Button btDiv = new Button("Divide");

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

    @Override
    public void start(Stage primaryStage) {
        FlowPane flowPane = new FlowPane();
        flowPane.setAlignment(Pos.CENTER);

        flowPane.getChildren().addAll(new Label("Number1:"),text1,new Label("Number2:"),text2,new Label("Result:"),text3);
        flowPane.getChildren().addAll(btAdd,btDiv,btMult,btSub);


        btAdd.setOnAction(e->{double res = Double.parseDouble(text1.getText()) + Double.parseDouble(text2.getText());
            text3.setText(String.format("%.2f",res));});
        btSub.setOnAction(event -> { double res = Double.parseDouble(text1.getText()) - Double.parseDouble(text2.getText());
            text3.setText(String.format("%.2f",res));});
        btMult.setOnAction(event -> { double res = Double.parseDouble(text1.getText()) * Double.parseDouble(text2.getText());
            text3.setText(String.format("%.2f",res));});
        btDiv.setOnAction(event -> {double res = Double.parseDouble(text1.getText()) / Double.parseDouble(text2.getText());
            text3.setText(String.format("%.2f",res));});

        Scene scene = new Scene(flowPane,200,50);
        primaryStage.setTitle("Exercise15_04");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

}

运行结果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356838.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号