From dd65a6d5c3091dd88a86425b0f28e5df0d0c68ac Mon Sep 17 00:00:00 2001 From: Squid Kid Date: Sat, 3 Dec 2022 04:31:56 -0500 Subject: [PATCH] Extended-Calculator-JavaFX --- .idea/.gitignore | 3 + .idea/libraries/javafx_sdk_19.xml | 10 + .idea/libraries/lib.xml | 10 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + Calculator-JavaFX.iml | 13 + .../calculatorjavafx/CalculatorJavaFx.class | Bin 0 -> 1316 bytes .../calculatorjavafx/FXMLDocument.fxml | 340 ++++++++++++ .../FXMLDocumentController.class | Bin 0 -> 6140 bytes .../calculatorjavafx/JavaFxCalculator.png | Bin 0 -> 26341 bytes .../calculatorjavafx/style.css | 30 ++ src/calculatorjavafx/FXMLDocument.fxml | 494 ++++++++++-------- .../FXMLDocumentController.java | 239 ++++++--- 14 files changed, 872 insertions(+), 287 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/libraries/javafx_sdk_19.xml create mode 100644 .idea/libraries/lib.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 Calculator-JavaFX.iml create mode 100644 out/production/Calculator-JavaFX/calculatorjavafx/CalculatorJavaFx.class create mode 100644 out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocument.fxml create mode 100644 out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocumentController.class create mode 100644 out/production/Calculator-JavaFX/calculatorjavafx/JavaFxCalculator.png create mode 100644 out/production/Calculator-JavaFX/calculatorjavafx/style.css diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/libraries/javafx_sdk_19.xml b/.idea/libraries/javafx_sdk_19.xml new file mode 100644 index 0000000..b16aa79 --- /dev/null +++ b/.idea/libraries/javafx_sdk_19.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml new file mode 100644 index 0000000..eb3bb1a --- /dev/null +++ b/.idea/libraries/lib.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f2f5415 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e2c12dd --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Calculator-JavaFX.iml b/Calculator-JavaFX.iml new file mode 100644 index 0000000..a722889 --- /dev/null +++ b/Calculator-JavaFX.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/Calculator-JavaFX/calculatorjavafx/CalculatorJavaFx.class b/out/production/Calculator-JavaFX/calculatorjavafx/CalculatorJavaFx.class new file mode 100644 index 0000000000000000000000000000000000000000..17756efdabcb29a1fb85156579f738c4719db4c1 GIT binary patch literal 1316 zcmah}SyR(c6#i~oNC{D(P z)3Mc+mdwz(Y}%&(lp&hVRAj`_B|%ou4TYgsII9-7tLoO?k)itx@v7k$E$(>?{ppO> zG6)_Eaa?EUE4|y$Rvo=|Y}kJOpnh!0=tZA|go1tyF!WqttM3(Z`%;j3?Vw1SL53`rPPFoIEr!Dg8vnJUt24&OIihL}Y{E8;)*cI07c1qtI+ zQ!|dI8@8ctbC)WRkYY$&P?UvQ#sqE%nx`0sL&QXMyJsO&iDQOAE^=MBK`4-=2a+i(b*?}J(_77o3-OT!`%%bCp3o=RJd!3d-E~oADT2{GunT17Z^G` zpSv`iZ3VXYqyj?=LG3_*O|+@afUvoaL;lHgZCm?;_~PE~9q2>;sJ&}--8d1em=*(vukP_D#=s8337sfVzVB-D! zDJC~_iRlJrbI}H}xrGMuxd!gGvZNr9_aLqLFfHT=CNYXxj3I+@EYO~a?Ab6wGdtzN z3ls@OFH%^=8X*}$5+%GOEU(BuM!MJN!W%4+Bv3BW8J2j4`>o{Smj}#{!|a7JHEhs3 K!zO(r*!l~Rr8UF= literal 0 HcmV?d00001 diff --git a/out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocument.fxml b/out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocument.fxml new file mode 100644 index 0000000..73e4728 --- /dev/null +++ b/out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocument.fxml @@ -0,0 +1,340 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocumentController.class b/out/production/Calculator-JavaFX/calculatorjavafx/FXMLDocumentController.class new file mode 100644 index 0000000000000000000000000000000000000000..5073a31c0792c0b07ea28685f88f075b347c67af GIT binary patch literal 6140 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 BdAa}q literal 0 HcmV?d00001 diff --git a/out/production/Calculator-JavaFX/calculatorjavafx/style.css b/out/production/Calculator-JavaFX/calculatorjavafx/style.css new file mode 100644 index 0000000..6e717d7 --- /dev/null +++ b/out/production/Calculator-JavaFX/calculatorjavafx/style.css @@ -0,0 +1,30 @@ +/* +To change this license header, choose License Headers in Project Properties. +To change this template file, choose Tools | Templates +and open the template in the editor. +*/ +/* + Created on : 15 Aug, 2017, 5:39:25 PM + Author : mrunal +*/ +.button{ + -fx-background-color: #2d2d2d; + -fx-border-color: black; + +} + +.button:hover{ + + -fx-text-fill: white ; +} + +#tf{ + -fx-background-color: #080101; + -fx-text-fill : white; +} +#tf2{ + -fx-background-color: #080101; + -fx-text-fill: whitesmoke; +} + + diff --git a/src/calculatorjavafx/FXMLDocument.fxml b/src/calculatorjavafx/FXMLDocument.fxml index 5ae8334..73e4728 100644 --- a/src/calculatorjavafx/FXMLDocument.fxml +++ b/src/calculatorjavafx/FXMLDocument.fxml @@ -7,248 +7,334 @@ + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + diff --git a/src/calculatorjavafx/FXMLDocumentController.java b/src/calculatorjavafx/FXMLDocumentController.java index 62cc734..eba8276 100644 --- a/src/calculatorjavafx/FXMLDocumentController.java +++ b/src/calculatorjavafx/FXMLDocumentController.java @@ -1,36 +1,29 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ package calculatorjavafx; -import java.net.URL; -import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.Labeled; import javafx.scene.control.TextField; +import java.lang.Math; + +import java.net.URL; +import java.util.ResourceBundle; -/** - * - * @author mrunal - */ public class FXMLDocumentController implements Initializable { - + @FXML - private TextField tf,tf2 ; - + private Button clear; + @FXML - private Button two; + private Button division; @FXML - private Button three; + private Button eight; @FXML - private Button six; + private Button equals; @FXML private Button five; @@ -39,41 +32,57 @@ public class FXMLDocumentController implements Initializable { private Button four; @FXML - private Button seven; + private Button fraction; @FXML - private Button eight; + private Button minus; @FXML - private Button nine; + private Button mult; @FXML - private Button equals; + private Button negative; @FXML - private Button zero; + private Button nine; @FXML - private Button clear; + private Button one; @FXML private Button plus; @FXML - private Button mult; + private Button seven; @FXML - private Button minus; + private Button six; @FXML - private Button one; - + private Button square; + @FXML - private Button division; - + private Button squareRoot; + + @FXML + private TextField tf; + + @FXML + private TextField tf2; + + @FXML + private Button three; + + @FXML + private Button two; + + @FXML + private Button zero; + private int operator ; double a,b,result ; String prevStr=""; + @FXML private void handleButtonAction(ActionEvent event) { String str = ((Labeled)event.getSource()).getText(); @@ -81,46 +90,46 @@ private void handleButtonAction(ActionEvent event) { tf2.setText(prevStr+str); prevStr = tf2.getText(); } - + @FXML private void add(){ try{ - a = Double.parseDouble(tf.getText()); - operator = 1 ; - tf2.setText(prevStr+"+"); - prevStr = tf2.getText(); - }catch(NumberFormatException e){ - System.out.println("Enter value First"); - }finally{ - tf.setText(""); - } + a = Double.parseDouble(tf.getText()); + operator = 1 ; + tf2.setText(prevStr+"+"); + prevStr = tf2.getText(); + }catch(NumberFormatException e){ + System.out.println("Enter value First"); + }finally{ + tf.setText(""); + } } - + @FXML private void substract(){ - try{ - a = Double.parseDouble(tf.getText()); - operator = 2 ; - tf2.setText(prevStr+"-"); - prevStr = tf2.getText(); - }catch(NumberFormatException e){ - System.out.println("Enter value First"); - }finally{ - tf.setText(""); - } + try{ + a = Double.parseDouble(tf.getText()); + operator = 2 ; + tf2.setText(prevStr+"-"); + prevStr = tf2.getText(); + }catch(NumberFormatException e){ + System.out.println("Enter value First"); + }finally{ + tf.setText(""); + } } - + @FXML private void multiply(){ - try{ + try{ a = Double.parseDouble(tf.getText()); operator = 3 ; tf2.setText(prevStr+"*"); prevStr = tf2.getText(); - }catch(NumberFormatException e){ + }catch(NumberFormatException e){ System.out.println("Enter value First"); }finally{ - tf.setText(""); + tf.setText(""); } } @FXML @@ -129,10 +138,10 @@ private void clearText(){ tf2.setText(""); prevStr=""; } - + @FXML private void divide(){ - try{ + try{ a = Double.parseDouble(tf.getText()); operator = 4 ; tf2.setText(prevStr+"/"); @@ -143,35 +152,99 @@ private void divide(){ tf.setText(""); } } - + @FXML private void equals(){ - try{ - b = Double.parseDouble(tf.getText()); - - switch(operator){ - case 1 : result = a + b ; tf.setText(""+result); break; - case 2 : result = a - b ; tf.setText(""+result); break; - case 3 : result = a * b ; tf.setText(""+result); break; - case 4 : try{ - result = a/b ; - tf.setText(""+result); - - }catch(Exception e){ - tf.setText("Error"); - } + try{ + b = Double.parseDouble(tf.getText()); + + switch(operator){ + case 1 : result = a + b ; tf.setText(""+result); break; + case 2 : result = a - b ; tf.setText(""+result); break; + case 3 : result = a * b ; tf.setText(""+result); break; + case 4 : try{ + result = a/b ; + tf.setText(""+result); + + }catch(Exception e){ + tf.setText("Error"); + } } - tf2.setText(prevStr+"="+result); - - - - }catch(NumberFormatException e){ - System.out.println("Select values First"); - } -} + tf2.setText(prevStr+"="+result); + + }catch(NumberFormatException e){ + System.out.println("Select values First"); + } + } + + @FXML + void fractor(ActionEvent event) { + try{ + a = Double.parseDouble(tf.getText()); + tf2.setText(""); + tf2.setText("1/" + a); + prevStr = tf2.getText(); + try{ + result = 1 / a; + } + catch (Exception e){ + tf.setText("Error"); + } + }catch(NumberFormatException e){ + System.out.println("Enter value First"); + }finally{ + tf.setText(""+result); + } + } + + @FXML + void negate(ActionEvent event) { + try{ + a = Double.parseDouble(tf.getText()); + tf2.setText(""); + tf2.setText("-" + a); + prevStr = tf2.getText(); + }catch(NumberFormatException e){ + System.out.println("Enter value First"); + }finally{ + tf.setText(""+prevStr); + } + } + + @FXML + void root(ActionEvent event) { + try{ + a = Double.parseDouble(tf.getText()); + tf2.setText("√" + a); + prevStr = tf2.getText(); + try { + result = Math.sqrt(a) ; + } + catch(Exception e){ + tf.setText("Error"); + } + }catch(NumberFormatException e){ + System.out.println("Enter value First"); + }finally{ + tf.setText(""+result); + } + } + + @FXML + void squared(ActionEvent event) { + try{ + a = Double.parseDouble(tf.getText()); + tf2.setText(prevStr+"^2"); + prevStr = tf2.getText(); + }catch(NumberFormatException e){ + System.out.println("Enter value First"); + }finally{ + tf.setText(""+ (a * a)); + } + } + @Override - public void initialize(URL url, ResourceBundle rb) { - // TODO - } - + public void initialize(URL url, ResourceBundle resourceBundle) { + + } }