Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. package transformatorcalcfx;
  8.  
  9. import javafx.application.Application;
  10. import javafx.event.ActionEvent;
  11. import javafx.geometry.Insets;
  12. import javafx.geometry.Orientation;
  13. import javafx.geometry.Pos;
  14. import javafx.scene.Scene;
  15. import javafx.scene.control.Button;
  16. import javafx.scene.control.Label;
  17. import javafx.scene.control.Separator;
  18. import javafx.scene.control.TextField;
  19. import javafx.scene.image.Image;
  20. import javafx.scene.layout.GridPane;
  21. import javafx.scene.layout.HBox;
  22. import javafx.scene.layout.VBox;
  23. import javafx.scene.paint.Color;
  24. import javafx.scene.text.Font;
  25. import javafx.scene.text.FontWeight;
  26. import javafx.scene.text.Text;
  27. import javafx.stage.Stage;
  28. import org.controlsfx.dialog.Dialog;
  29. import org.controlsfx.dialog.Dialogs;
  30.  
  31. /**
  32.  *
  33.  * @author arief
  34.  */
  35. public class TransformatorCalcFX extends Application {
  36.         TextField txtN1,txtN2,txtV1,txtV2,txtI1,txtI2;
  37.         Text txtStatus,txtInput,txtResult;
  38.        
  39.     @Override
  40.     public void start(Stage primaryStage) {
  41.         String fontname="Comic Sans MS";
  42.        
  43.         primaryStage.getIcons().add(new Image(getClass().getResourceAsStream("assets/abacus.png")));
  44.        
  45.         GridPane pane1= new GridPane();
  46.         pane1.setAlignment(Pos.CENTER);
  47.         pane1.setPadding(new Insets(5,5,5,5));
  48.         pane1.setHgap(10);
  49.         pane1.setVgap(10);
  50.         pane1.setPrefSize(400, 150);
  51.         pane1.setId("1pane");
  52.        
  53.         GridPane pane2= new GridPane();
  54.         pane2.setAlignment(Pos.CENTER);
  55.         pane2.setPadding(new Insets(5,5,5,5));
  56.         pane2.setHgap(30);
  57.         pane2.setVgap(10);
  58.         pane2.setPrefSize(400, 150);
  59.         pane2.setId("2pane");
  60.        
  61.         VBox vbox = new VBox(10);
  62.         vbox.setAlignment(Pos.CENTER);
  63.         vbox.setPrefSize(450, 640);
  64.         vbox.setId("boxv");
  65.        
  66.         HBox hbox = new HBox(10);
  67.         hbox.setAlignment(Pos.CENTER);
  68.         hbox.setPadding(new Insets(5,5,5,5));
  69.         hbox.setPrefSize(450, 35);
  70.         hbox.setId("hbox");
  71.        
  72.         Button btnProses = new Button("Process");
  73.         btnProses.setPrefSize(100, 30);
  74.         btnProses.setAlignment(Pos.CENTER);
  75.        
  76.         Button btnHapus = new Button("Clear");
  77.         btnHapus.setPrefSize(100, 30);
  78.         btnHapus.setAlignment(Pos.CENTER);
  79.        
  80.         Button btnTentang = new Button("About");
  81.         btnTentang.setPrefSize(100, 30);
  82.         btnTentang.setAlignment(Pos.CENTER);
  83.        
  84.         Button btnTutup = new Button("Close");
  85.         btnTutup.setPrefSize(100, 30);
  86.         btnTutup.setAlignment(Pos.CENTER);
  87.        
  88.         txtInput = new Text("Input");
  89.         txtInput.setFont(Font.font(fontname, FontWeight.BOLD, 18));
  90.        
  91.         txtResult = new Text("Result");
  92.         txtResult.setFont(Font.font(fontname, FontWeight.BOLD, 18));
  93.        
  94.         txtStatus = new Text("");
  95.         txtStatus.setId("status");
  96.         txtStatus.setFill(Color.FIREBRICK);
  97.         txtStatus.setFont(Font.font(fontname, FontWeight.BOLD, 18));
  98.        
  99.         Label N1 = new Label("Jumlah Lilitan Primer");
  100.         Label N2 = new Label("Jumlah Lilitan Sekunder");
  101.         Label V1 = new Label("Tegangan Primer");
  102.         Label I1 = new Label("Kuat Arus Primer");
  103.         Label V2 = new Label("Tegangan Sekunder");
  104.         Label I2 = new Label("Kuat Arus Sekunder");
  105.        
  106.         txtN1 = new TextField(){
  107.         @Override
  108.             public void replaceText(int start, int end, String text) {
  109.                 if (text.matches("[0-9]*")) {
  110.                     super.replaceText(start, end, text);
  111.                 }
  112.             }
  113.         @Override
  114.             public void replaceSelection(String text) {
  115.                 if (text.matches("[0-9]*")) {
  116.                     super.replaceSelection(text);
  117.                 }
  118.             }
  119.         };
  120.         txtN1.setPromptText("Lilitan Primer");
  121.                
  122.         txtN2 = new TextField(){
  123.         @Override
  124.             public void replaceText(int start, int end, String text) {
  125.                 if (text.matches("[0-9]*")) {
  126.                     super.replaceText(start, end, text);
  127.                 }
  128.             }
  129.         @Override
  130.             public void replaceSelection(String text) {
  131.                 if (text.matches("[0-9]*")) {
  132.                     super.replaceSelection(text);
  133.                 }
  134.             }
  135.         };
  136.         txtN2.setPromptText("Lilitan Sekunder");
  137.        
  138.         txtV1 = new TextField(){
  139.         @Override
  140.             public void replaceText(int start, int end, String text) {
  141.                 if (text.matches("[0-9]*")) {
  142.                     super.replaceText(start, end, text);
  143.                 }
  144.             }
  145.         @Override
  146.             public void replaceSelection(String text) {
  147.                 if (text.matches("[0-9]*")) {
  148.                     super.replaceSelection(text);
  149.                 }
  150.             }
  151.         };
  152.         txtV1.setPromptText("Tegangan Primer");
  153.        
  154.         txtV2 = new TextField();
  155.         txtV2.setPromptText("Tegangan Sekunder");
  156.         txtV2.setEditable(false);
  157.        
  158.         txtI1 = new TextField(){
  159.         @Override
  160.             public void replaceText(int start, int end, String text) {
  161.                 if (text.matches("[0-9]*")) {
  162.                     super.replaceText(start, end, text);
  163.                 }
  164.             }
  165.         @Override
  166.             public void replaceSelection(String text) {
  167.                 if (text.matches("[0-9]*")) {
  168.                     super.replaceSelection(text);
  169.                 }
  170.             }
  171.         };
  172.         txtI1.setPromptText("Kuat Arus Primer");
  173.        
  174.         txtI2 = new TextField();
  175.         txtI2.setPromptText("Kuat Arus Sekunder");
  176.         txtI2.setEditable(false);
  177.        
  178.         Separator sh1 = new Separator(Orientation.HORIZONTAL);
  179.         sh1.prefHeight(5);
  180.         sh1.prefWidth(450);
  181.        
  182.         Separator sh2 = new Separator(Orientation.HORIZONTAL);
  183.         sh2.prefHeight(5);
  184.         sh2.prefWidth(450);
  185.        
  186.         Separator sh3 = new Separator(Orientation.HORIZONTAL);
  187.         sh3.prefHeight(5);
  188.         sh3.prefWidth(450);
  189.        
  190.         pane1.add(txtInput, 0, 0, 2, 1);
  191.         pane1.add(N1, 0, 1);
  192.         pane1.add(N2, 0, 2);
  193.         pane1.add(V1, 0, 3);
  194.         pane1.add(I1, 0, 4);
  195.         pane1.add(txtN1, 1, 1);
  196.         pane1.add(txtN2, 1, 2);
  197.         pane1.add(txtV1, 1, 3);
  198.         pane1.add(txtI1, 1, 4);
  199.        
  200.         pane2.add(txtResult, 0, 0, 2, 1);
  201.         pane2.add(V2, 0, 1);
  202.         pane2.add(I2, 0, 2);
  203.         pane2.add(txtV2, 1, 1);
  204.         pane2.add(txtI2, 1, 2);
  205.        
  206.         hbox.getChildren().addAll(btnProses,btnHapus,btnTentang,btnTutup);
  207.         vbox.getChildren().addAll(pane1,sh1,pane2,sh2,txtStatus,sh3,hbox);
  208.        
  209.        
  210.        
  211.         btnProses.setOnAction((ActionEvent event) -> {
  212.                
  213.            if((("".equals(txtN1.getText()))&&("".equals(txtN2.getText())))&&(("".equals(txtV1.getText()))&&("".equals(txtI1.getText())))){
  214.                 Dialogs.create().owner(primaryStage).title("Warning")
  215.                 .message(txtN1.getPromptText()+", "+txtN2.getPromptText()+", "+txtV1.getPromptText()+" & "+txtI1.getPromptText()+" are empty.")
  216.                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  217.             }else if(("".equals(txtN1.getText()))&&("".equals(txtN2.getText()))&&("".equals(txtV1.getText()))){
  218.                 Dialogs.create().owner(primaryStage).title("Warning")
  219.                                 .message(txtN1.getPromptText()+", "+txtN2.getPromptText()+" & "+txtV1.getPromptText()+" are empty.")
  220.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  221.             }else if(("".equals(txtN1.getText()))&&("".equals(txtN2.getText()))&&("".equals(txtI1.getText()))){
  222.                 Dialogs.create().owner(primaryStage).title("Warning")
  223.                                 .message(txtN1.getPromptText()+", "+txtN2.getPromptText()+" & "+txtI1.getPromptText()+" are empty.")
  224.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  225.             }else if(("".equals(txtN1.getText()))&&("".equals(txtV1.getText()))&&("".equals(txtI1.getText()))){
  226.                 Dialogs.create().owner(primaryStage).title("Warning")
  227.                                 .message(txtN1.getPromptText()+", "+txtV1.getPromptText()+" & "+txtI1.getPromptText()+" are empty.")
  228.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  229.             }else if(("".equals(txtN2.getText()))&&("".equals(txtV1.getText()))&&("".equals(txtI1.getText()))){
  230.                 Dialogs.create().owner(primaryStage).title("Warning")
  231.                                 .message(txtN2.getPromptText()+", "+txtV1.getPromptText()+" & "+txtI1.getPromptText()+" are empty.")
  232.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  233.             }else if(("".equals(txtN1.getText()))&&("".equals(txtN2.getText()))){
  234.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN1.getPromptText()+" & "+txtN2.getPromptText()+ " are empty.")
  235.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  236.             }else if(("".equals(txtN1.getText()))&&("".equals(txtV1.getText()))){
  237.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN1.getPromptText()+" & "+txtV1.getPromptText()+ " are empty.")
  238.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  239.             }else if(("".equals(txtN1.getText()))&&("".equals(txtI1.getText()))){
  240.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN1.getPromptText()+" & "+txtI1.getPromptText()+ " are empty.")
  241.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  242.             }else if(("".equals(txtN2.getText()))&&("".equals(txtV1.getText()))){
  243.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN2.getPromptText()+" & "+txtV1.getPromptText()+ " are empty.")
  244.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  245.             }else if(("".equals(txtN2.getText()))&&("".equals(txtI1.getText()))){
  246.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN2.getPromptText()+" & "+txtI1.getPromptText()+ " are empty.")
  247.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  248.             }else if(("".equals(txtV1.getText()))&&("".equals(txtI1.getText()))){
  249.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtV1.getPromptText()+" & "+txtI1.getPromptText()+ " are empty.")
  250.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  251.             }else if ("".equals(txtN1.getText())){
  252.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN1.getPromptText()+" is empty.")
  253.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  254.             }else if ("".equals(txtN2.getText())){
  255.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtN2.getPromptText()+" is empty.")
  256.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  257.             }else if ("".equals(txtV1.getText())){
  258.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtV1.getPromptText()+" is empty.")
  259.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  260.             }else if ("".equals(txtI1.getText())){
  261.                 Dialogs.create().owner(primaryStage).title("Warning").message(txtI1.getPromptText()+" is empty.")
  262.                                 .styleClass(Dialog.STYLE_CLASS_CROSS_PLATFORM).showWarning();
  263.             }else{
  264.                 double n1 = Double.parseDouble(txtN1.getText());
  265.                 double n2 = Double.parseDouble(txtN2.getText());
  266.                 double v1 = Double.parseDouble(txtV1.getText());
  267.                 double i1 = Double.parseDouble(txtI1.getText());
  268.            
  269.                 if(n1>n2){
  270.                     double DV2 = (v1*n2)/n1;
  271.                     double DI2 = (i1*n1)/n2;
  272.                     txtV2.setText(String.valueOf(DV2));
  273.                     txtI2.setText(String.valueOf(DI2));
  274.                     txtStatus.setText("Tegangan diturunkan dan Kuat Arus dinaikkan.");
  275.                 }else if(n1<n2){
  276.                     double DV2 = (v1*n2)/n1;
  277.                     double DI2 = (i1*n1)/n2;
  278.                     txtV2.setText(String.valueOf(DV2));
  279.                     txtI2.setText(String.valueOf(DI2));
  280.                     txtStatus.setText("Tegangan dinaikkan dan Kuat Arus diturunkan.");
  281.                 }else{
  282.                     double DV2 = (v1*n2)/n1;
  283.                     double DI2 = (i1*n1)/n2;
  284.                     txtV2.setText(String.valueOf(DV2));
  285.                     txtI2.setText(String.valueOf(DI2));
  286.                     txtStatus.setText("Tegangan dan Kuat Arus tidak berubah.");
  287.                 }
  288.             }
  289.            
  290.         });
  291.        
  292.         btnHapus.setOnAction((ActionEvent event)->{
  293.             txtV1.clear();
  294.             txtV2.clear();
  295.             txtN1.clear();
  296.             txtN2.clear();
  297.             txtI1.clear();
  298.             txtI2.clear();
  299.             txtStatus.setText("");
  300.         });
  301.        
  302.         btnTentang.setOnAction((ActionEvent event)->{
  303.             Dialogs.create().owner(primaryStage).title("About Me").masthead("TransformatorCalcFX")
  304.             .message("Aplikasi ini dibuat dengan menggunakan JavaFX 8, JDK 8.0.25, dan Library Controlsfx 8.20.8").showInformation();
  305.         });
  306.        
  307.         btnTutup.setOnAction((ActionEvent Event)->{
  308.            primaryStage.close();
  309.         });
  310.        
  311.         Scene scene = new Scene(vbox, 400, 450);
  312.         scene.getStylesheets().add(TransformatorCalcFX.class.getResource("assets/transformatorFX.css").toExternalForm());
  313.         primaryStage.setTitle("TransformatorCalcFX");
  314.         primaryStage.centerOnScreen();
  315.         primaryStage.setScene(scene);
  316.         primaryStage.show();
  317.     }
  318.    
  319.    
  320.    
  321.     /**
  322.      * @param args the command line arguments
  323.      */
  324.     public static void main(String[] args) {
  325.        
  326.         launch(args);
  327.        
  328.     }
  329.    
  330. }