JavaFX、计算贷款界面和计算能量界面转换(Java8版本)
2021/10/23 17:09:30
本文主要是介绍JavaFX、计算贷款界面和计算能量界面转换(Java8版本),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package pack2; import javafx.application.Application; import javafx.geometry.HPos; 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.GridPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.stage.Stage; public class LoanAndEnergy extends Application { private TextField n1 = new TextField(); private TextField n2 = new TextField(); private TextField n3 = new TextField(); private TextField n4 = new TextField(); private TextField n5 = new TextField(); private Button switchToWater = new Button("Switch"); private Button switchToLoan = new Button("Switch"); private BorderPane pane = new BorderPane(); @Override public void start(Stage primaryStage) throws Exception {//--- pane.setCenter(getComputeLoan()); pane.setBottom(switchToWater); pane.setStyle("-fx-background-color: grey; "); BorderPane.setAlignment(switchToWater, Pos.CENTER); BorderPane.setAlignment(switchToLoan, Pos.CENTER); n1.setAlignment(Pos.BOTTOM_RIGHT); //设置对齐为底部右对齐 n2.setAlignment(Pos.BOTTOM_RIGHT); n3.setAlignment(Pos.BOTTOM_RIGHT); n4.setAlignment(Pos.BOTTOM_RIGHT); n5.setAlignment(Pos.BOTTOM_RIGHT); n4.setEditable(false); //设置为不可编辑 n5.setEditable(false); switchToWater.setOnAction(e->switchToWater()); //注册了switchToWater()方法 switchToLoan.setOnAction(e->switchToLoan()); //注册了switchToLoan()方法 Scene scene = new Scene(pane,420,350); primaryStage.setTitle("Calculator"); primaryStage.setScene(scene); primaryStage.setResizable(false); //设置舞台大小不可改变 primaryStage.show(); }//--- //转换成计算能量界面方法 private void switchToWater() { pane.setCenter(getComputeWater()); //设置中部为计算能量界面 pane.setBottom(switchToLoan); //设置底部为转向贷款界面的按钮 } //转换成计算贷款界面方法 private void switchToLoan() { pane.setCenter(getComputeLoan()); //设置中部为计算贷款界面 pane.setBottom(switchToWater); //设置底部为转向能量界面的按钮 } //返回计算能量界面方法 private BorderPane getComputeWater() { GridPane gridPane = new GridPane(); Button calculateWater = new Button("Calculate"); Button resetWater = new Button("Reset"); gridPane.setStyle("-fx-hgap: 25; -fx-vgap: 5; -fx-alignment: center; -fx-background-color: beige; "); gridPane.addColumn(0, new Label("Weight of Water(kg):"),new Label("Initial Temperature(℃):"), new Label("Final Temperature(℃):"),new Label("Energy Needed(KJ):"),resetWater); gridPane.addColumn(1, n1,n2,n3,n4,calculateWater); GridPane.setHalignment(resetWater, HPos.RIGHT); resetWater.setOnAction(e->new ComputeWater().reset(n1,n2,n3,n4)); calculateWater.setOnAction(e->new ComputeWater().computePower(n1,n2,n3,n4)); Label label = new Label(" 计算能量\n------------------"); label.setFont(Font.font("华文中宋", FontWeight.BOLD, 44)); label.setTextFill(Color.WHITESMOKE); BorderPane borderPane = new BorderPane(gridPane); borderPane.setStyle("-fx-background-color: grey; "); borderPane.setTop(label); BorderPane.setAlignment(borderPane.getTop(), Pos.BOTTOM_CENTER); return borderPane; } //返回计算贷款界面方法 private BorderPane getComputeLoan() { GridPane pane = new GridPane(); Button calculateLoan = new Button("Calculate"); Button resetLoan = new Button("Reset"); pane.setStyle("-fx-hgap: 25; -fx-vgap: 5; -fx-alignment: center; -fx-background-color: beige; "); pane.addColumn(0, new Label("Annual Interest Rate:"),new Label("Number of Years:"), new Label("Loan Amount:"),new Label("Monthly Payment:"),new Label("Total Payment:"),resetLoan); pane.addColumn(1, n1,n2,n3,n4,n5,calculateLoan); GridPane.setHalignment(resetLoan, HPos.RIGHT); resetLoan.setOnAction(e->new ComputeWater().reset(n1, n2, n3, n4, n5)); calculateLoan.setOnAction(e->new Loan().computeLoan(n1, n2, n3, n4, n5)); Label label = new Label(" 计算贷款\n------------------"); label.setFont(Font.font("华文中宋", FontWeight.BOLD, 44)); label.setTextFill(Color.WHITESMOKE); BorderPane borderPane = new BorderPane(pane); borderPane.setStyle("-fx-background-color: grey; "); borderPane.setTop(label); BorderPane.setAlignment(borderPane.getTop(), Pos.BOTTOM_CENTER); return borderPane; } public static void main(String[] args) { launch(args); } }
package pack2; import javafx.application.Application; import javafx.geometry.HPos; 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.GridPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.stage.Stage; /** * 计算水从初始温度加热到最终温度所需的能量(能量(千焦) = 水的重量(kg)*(最终温度-初始温度)*4184) * 本程序共创建了两个面板--GridPane、BorderPane. * GridPane用于存放 标签 及 文本域 以及 按钮 . * BorderPane存放 GridPane 和一个 Label标签,其中GridPane放于中间,Label标签放于顶部 * 本程序中的两个按钮分别注册了 ActionEvent 事件.reset按钮注册了 reset函数 , * calculate按钮注册了 computePower函数 .两个按钮均使用了lambda表达式. * */ public class ComputeWater extends Application { private TextField weightOfWater = new TextField(); private TextField startTemperature = new TextField(); private TextField endTemperature = new TextField(); private TextField powerNeeded = new TextField(); private Button calculate = new Button("Calculate"); private Button reset = new Button("Reset"); @Override public void start(Stage primaryStage) throws Exception { GridPane pane = new GridPane(); pane.setStyle("-fx-hgap: 25; -fx-vgap: 5; -fx-alignment: center; "); pane.addColumn(0, new Label("Weight of Water(kg):"),new Label("Initial Temperature:"), new Label("Final Temperature:"),new Label("Energy Needed(KJ):"),reset); pane.addColumn(1, weightOfWater,startTemperature,endTemperature,powerNeeded,calculate); GridPane.setHalignment(calculate, HPos.LEFT); GridPane.setHalignment(reset, HPos.RIGHT); weightOfWater.setAlignment(Pos.BOTTOM_RIGHT); startTemperature.setAlignment(Pos.BOTTOM_RIGHT); endTemperature.setAlignment(Pos.BOTTOM_RIGHT); powerNeeded.setAlignment(Pos.BOTTOM_RIGHT); powerNeeded.setEditable(false); reset.setOnAction(e->reset()); calculate.setOnAction(e->computePower()); Label label = new Label(" 计算能量\n------------------"); label.setFont(Font.font("华文中宋", FontWeight.BOLD, 44)); label.setTextFill(Color.DARKGREY); BorderPane borderPane = new BorderPane(pane); borderPane.setStyle("-fx-background-color: beige; "); borderPane.setTop(label); BorderPane.setAlignment(borderPane.getTop(), Pos.BOTTOM_CENTER); Scene scene = new Scene(borderPane,420,350); primaryStage.setTitle("Compute Energy"); primaryStage.setScene(scene); primaryStage.setResizable(false); //设置是否可改变大小 primaryStage.show(); } //Reset all of the text field private void reset() { startTemperature.setText(null); endTemperature.setText(null); weightOfWater.setText(null); powerNeeded.setText(null); } public void reset(TextField...textField) { for (TextField textField2 : textField) { textField2.setText(null); } } //Compute the energy needed heating the water private void computePower(){ try { double start = Double.parseDouble(startTemperature.getText()); double end = Double.parseDouble(endTemperature.getText()); double weight = Double.parseDouble(weightOfWater.getText()); double power = weight*(end-start)*4184; powerNeeded.setText(String.format("%.2fKJ", power)); }catch(NumberFormatException ex) { //Do not process when text field is null among three above } catch(NullPointerException ex) { //Do not any process when text field is null } } public void computePower(TextField n1, TextField n2, TextField n3, TextField n4){ try { double weight = Double.parseDouble(n1.getText()); double start = Double.parseDouble(n2.getText()); double end = Double.parseDouble(n3.getText()); double power = weight*(end-start)*4184; n4.setText(String.format("%.2fKJ", power)); }catch(NumberFormatException ex) { //Do not any process when text field is null among three above } catch(NullPointerException ex) { //Do not any process when text field is null } } public static void main(String[] args) { launch(args); } }
这篇关于JavaFX、计算贷款界面和计算能量界面转换(Java8版本)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?