ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

温度转换小程序--JavaFX

2020-12-13 21:03:19  阅读:221  来源: 互联网

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


  • 作为一名Java语言的初学者,最近在学习JavaFX,看到CSDN上用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.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<ActionEvent>(){
            @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<ActionEvent>() {
            @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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有