JavaFX、创建一个英里/公里的转换器

package fx;

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

public class Exercise16_04 extends Application {

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

    @Override
    public void start(Stage primaryStage) {
        final double KM = 1.602307322544464;

        TextField mile = new TextField();   //英里
        TextField kilometer = new TextField();  //公里
        mile.setAlignment(Pos.BOTTOM_RIGHT);    //文本域设置对齐
        kilometer.setAlignment(Pos.BOTTOM_RIGHT);

        mile.setOnAction(event -> { //文本域注册动作事件
            try {
                double m = Double.parseDouble(mile.getText());  //获取文本并转为数值
                if (m >= 0) //如果数值大于等于0,公里设置文本
                    kilometer.setText(String.valueOf(m * KM));
            } catch (Exception ex) {    //处理数字字符串转换异常
            }
        });
        kilometer.setOnAction(event -> {
            try {
                double km = Double.parseDouble(kilometer.getText());
                if (km >= 0)
                    mile.setText(String.valueOf(km / KM));
            } catch (Exception ex) {
            }
        });

        GridPane pane = new GridPane();
        pane.addRow(0, new Label("Mile"), mile);
        pane.addRow(1, new Label("Kilometer"), kilometer);
        pane.setStyle("-fx-hgap: 5px; -fx-padding: 5px;");

        Scene scene = new Scene(pane);
        primaryStage.setScene(scene);
        primaryStage.setTitle("Exercise16_04");
        primaryStage.show();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值