温度转换java小程序_温度转换小程序--JavaFX

作为一名Java语言的初学者,最近在学习JavaFX,看到CSDN上用swing实现GUI简单功能的小程序居多,于是想着用JavaFX来实现下,选了个极为简单的温度转换程序,折腾了快一天吧,总算是写完了,虽然简单,但还是想记录下~~~

实现结果如下图:

d4cfa611afec1ac27ea79a16995ca269.png

代码思路:

用GridPane布局,将需要用的TextField、Label、RadioButton、Button实现,并设置好位置

为两个Button设置SetonAction方法

代码如下:

package GUIs;

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.control.Label;

import javafx.scene.control.RadioButton;

import javafx.scene.control.TextField;

import javafx.scene.control.ToggleGroup;

import javafx.scene.image.Image;

import javafx.scene.layout.GridPane;

import javafx.stage.Stage;

public class TemperatureChange extends Application{

public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage mystage) throws Exception{

GridPane root = new GridPane();

//用CSS格式设置背景渐变色

root.setStyle("-fx-background-color:linear-gradient(to right,#00fffc,#fff600)");

Button btn1 = new Button("温度转换");

Button btn2 = new Button("退出");

Label lab1 = new Label("摄氏温度 =");

Label lab2 = new Label("华氏温度");

TextField txt1 = new TextField();

txt1.setPrefWidth(70);//设置宽度

TextField txt2 = new TextField();

txt2.setPrefWidth(50);

RadioButton rb1 = new RadioButton("摄氏转华氏");

RadioButton rb2 = new RadioButton("华氏转摄氏");

ToggleGroup tg = new ToggleGroup();

rb1.setToggleGroup(tg);

rb2.setToggleGroup(tg);

//将控件全部添加到布局中

root.add(txt1, 0, 0);

root.add(lab1, 1, 0);

root.add(txt2, 2, 0);

root.add(lab2, 3, 0);

root.add(rb1, 1, 1);

root.add(rb2, 2, 1);

root.add(btn1, 1, 2);

root.add(btn2, 2, 2);

root.setHgap(20);//水平间距

root.setVgap(35);//垂直间距

root.setAlignment(Pos.CENTER);//设置控件位于布局中央

btn1.setOnAction(new EventHandler(){

@Override

public void handle(ActionEvent event){

double tem1;

double tem2;

double c ;//摄氏度

double f;//华氏度

if(rb1.isSelected()){//单选按钮1被选中时

tem1 = Double.valueOf(txt1.getText()) ;

f=1.8*tem1+32;

txt2.setText(String.valueOf(f).substring(0, 7));

}

if(rb2.isSelected()){//单选按钮2被选中时

tem2 = Double.valueOf(txt2.getText()) ;

c=5*(tem2-32)/9;

txt1.setText(String.valueOf(c).substring(0, 7));

}

}

});

btn2.setOnAction(new EventHandler() {

@Override

public void handle(ActionEvent event) {

System.exit(0);

}

});

Scene scene = new Scene(root, 400, 250);

mystage.setTitle("TemperatureChange");//设置标题

mystage.getIcons().add(new Image("Java.png"));//添加图标

mystage.setScene(scene);

mystage.show();

}

}

标签:转换,--,javafx,JavaFX,scene,add,new,import,root

来源: https://blog.csdn.net/m0_50115641/article/details/111144826

该程序允许用户比较摄氏和华氏温度的相等性。具体要求如下: 建立一个Temperature类,它有两个实例变量:一个是温度值(float);另一个是温度的计量单位(char),即取值 ’C’ 或 ’F’,C表示Celsius(摄氏温度)、F表示Fahrenheit(华氏温度)。这个类还应有2 个构造方法: 给每一个实例变量设置缺省值,即温度值为0、计量单位为C(摄氏); 通过两个参数分别给两个实例变量赋初值。 这个类应包括: 两个存取方法:一个返回用摄氏计量的温度、另一个返回华氏温度。摄氏和华氏温度的转换公式如下: degreesC = 5 * (degreesF - 32)/9 degreesF = (9* (degreesC)/5) + 32 三个改变对象属性的方法:一个设置温度值、一个设置计量单位(’F’或’C’)、另一个同时设置温度值和计量单位。 三个比较方法:一个用来是否两个温度相等;一个方法用来测试比较一个温度大于另一个温度;一个方法用来测试比较一个温度小于另一个温度。 最后写一个测试程序(main方法),测试Temperature类中的所有方法。要确保使用到所用的构造方法;要测试每一个比较方法,并确保至少有一个真(true)一个假(false)的结果。例如测试:0.0 degrees C = 32.0 degrees F -40.0 degrees C = - 40.0 degrees F -100.0 degrees C = 212.0 degrees F 请注意:必须保证输入的数据是有效的。所有非法的输入字符都应产生相应的错误信息并提示用户重新输入正确的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值