温度转换小程序--JavaFX
-
作为一名Java语言的初学者,最近在学习JavaFX,看到上用swing实现GUI简单功能的小程序居多,于是想着用JavaFX来实现下,选了个极为简单的温度转换程序,折腾了快一天吧,总算是写完了,虽然简单,但还是想记录下~~~
实现结果如下图:
代码思路:
-
用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.scene.text.Font; 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(); root.setStyle("-fx-background-color:linear-gradient(to right,#ff00ff,#ffff00)"); Button btn1 = new Button("温度转换"); btn1.setFont(Font.font(16)); Button btn2 = new Button("退出"); btn2.setFont(Font.font(16)); Label lab1 = new Label("摄氏度°C ="); lab1.setFont(Font.font(16)); Label lab2 = new Label("华氏度°F"); lab2.setFont(Font.font(16)); TextField txt1 = new TextField(""); txt1.setFont(Font.font(16)); txt1.setPrefWidth(100); TextField txt2 = new TextField(); txt2.setPrefWidth(50); txt2.setFont(Font.font(16)); RadioButton rb1 = new RadioButton("摄氏转华氏"); rb1.setFont(Font.font(16)); RadioButton rb2 = new RadioButton("华氏转摄氏"); rb2.setFont(Font.font(16)); 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<ActionEvent>(){ @Override public void handle(ActionEvent event){ double tem1; double tem2; double c ; double f; if(rb1.isSelected()){ tem1 = Double.valueOf(txt1.getText()) ; f=1.8*tem1+32; txt2.setText(String.format("%.2f", f)); } if( rb2.isSelected()){ tem2 = Double.valueOf(txt2.getText()) ; c=5*(tem2-32)/9; txt1.setText(String.format("%.2f", c)); } } }); btn2.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { System.exit(0); } }); Scene scene = new Scene(root, 600, 300); mystage.setTitle("TemperatureChange"); mystage.getIcons().add(new Image("Java.png")); mystage.setScene(scene); mystage.show(); } }
-
做了小小的修改,因为发现之前的代码运行的时候有点小问题,然后顺带把外观也改了下。 这是上一版的图片
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
【前端之路】react框架学习