{"id":642,"date":"2020-02-27T12:54:43","date_gmt":"2020-02-27T12:54:43","guid":{"rendered":"http:\/\/iludis.de\/?p=642"},"modified":"2022-04-20T10:08:44","modified_gmt":"2022-04-20T10:08:44","slug":"javafx-taschenrechner-florian-s","status":"publish","type":"page","link":"https:\/\/iludis.de\/?page_id=642","title":{"rendered":"JavaFX-Taschenrechner Florian S."},"content":{"rendered":"<h3>Main.java:<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package sample;\r\n\r\nimport javafx.application.Application;\r\nimport javafx.fxml.FXMLLoader;\r\nimport javafx.scene.Parent;\r\nimport javafx.scene.Scene;\r\nimport javafx.stage.Stage;\r\n\r\npublic class Main extends Application {\r\n\r\n@Override\r\npublic void start(Stage primaryStage) throws Exception{\r\nParent root = FXMLLoader.load(getClass().getResource(&quot;sample.fxml&quot;));\r\nprimaryStage.setTitle(&quot;Taschenrechner&quot;);\r\nprimaryStage.setScene(new Scene(root, 230, 280));\r\nprimaryStage.show();\r\n}\r\n\r\npublic static void main(String[] args) {\r\nlaunch(args);\r\n}\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h3>Controller.java:<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package sample;\r\n\r\nimport javafx.fxml.FXML;\r\nimport javafx.scene.control.Button;\r\nimport javafx.scene.control.Label;\r\nimport javafx.event.ActionEvent;\r\n\r\npublic class Controller {\r\nprivate Model tmodel = new Model();\r\n@FXML\r\nprivate Button ButtonPlus;\r\n@FXML\r\nprivate Button ButtonMinus;\r\n@FXML\r\nprivate Button ButtonMal;\r\n@FXML\r\nprivate Button ButtonDurch;\r\n@FXML\r\nprivate Button ButtonEins;\r\n@FXML\r\nprivate Button ButtonZwei;\r\n@FXML\r\nprivate Button ButtonDrei;\r\n@FXML\r\nprivate Button ButtonVier;\r\n@FXML\r\nprivate Button ButtonFuenf;\r\n@FXML\r\nprivate Button ButtonSechs;\r\n@FXML\r\nprivate Button ButtonSieben;\r\n@FXML\r\nprivate Button ButtonAcht;\r\n@FXML\r\nprivate Button ButtonNeun;\r\n@FXML\r\nprivate Button ButtonNull;\r\n@FXML\r\nprivate Button ButtonGleich;\r\n@FXML\r\nprivate Button ButtonCE;\r\n@FXML\r\nprivate Button ButtonCLX;\r\n@FXML\r\nprivate Label Label1;\r\n\r\npublic void ButtonPressed(ActionEvent event) {\r\nButton pressedButton = (Button) event.getSource();\r\nString ButtonTag = pressedButton.getText();\r\nint int1 = Integer.valueOf(Label1.getText());\r\nif (String.valueOf(tmodel.getVar1()).equals(&quot;0&quot;)) {\r\ntmodel.setVar1(int1);\r\nSystem.out.println(&quot;var1 gesetzt:&quot;);\r\nSystem.out.println(tmodel.getVar1());\r\n}\r\nelse {\r\ntmodel.setVar2(Integer.valueOf(Label1.getText()));\r\nSystem.out.println(&quot;var2 gesetzt:&quot;);\r\nSystem.out.println(tmodel.getVar2());\r\ntmodel.ForceExecute(ButtonTag);\r\n}\r\nLabel1.setText(&quot;0&quot;);\r\nif (ButtonTag.equals(ButtonPlus.getText())) {\r\ntmodel.setStr1(&quot;+&quot;);\r\n} else if (ButtonTag.equals(ButtonMinus.getText())) {\r\ntmodel.setStr1(&quot;-&quot;);\r\n} else if (ButtonTag.equals(ButtonMal.getText())) {\r\ntmodel.setStr1(&quot;*&quot;);\r\n} else if (ButtonTag.equals(ButtonDurch.getText())) {\r\ntmodel.setStr1(&quot;\/&quot;);\r\n}\r\nLabel1.setText(&quot;0&quot;);\r\n}\r\npublic void NumPressed(ActionEvent event) {\r\nButton pressedButton = (Button) event.getSource();\r\nString ButtonTag = pressedButton.getText();\r\nint oldNum = Integer.valueOf(Label1.getText());\r\nint newNum = tmodel.CalcNewNum(oldNum, Integer.valueOf(ButtonTag));\r\nLabel1.setText(String.valueOf(newNum));\r\n}\r\npublic void SpecialButton(ActionEvent event) {\r\nint ergebnis = 0;\r\nButton pressedButton = (Button) event.getSource();\r\nString ButtonTag = pressedButton.getText();\r\nif (ButtonTag.equals(&quot;CE&quot;)) {\r\nLabel1.setText(String.valueOf(Integer.valueOf(Label1.getText())\/10));\r\n}\r\nelse if (ButtonTag.equals(&quot;=&quot;)) {\r\nSystem.out.println(&quot;ausrechnen&quot;);\r\ntmodel.setVar2(Integer.valueOf(Label1.getText()));\r\nSystem.out.println(&quot;var2 gesetzt:&quot;);\r\nSystem.out.println(tmodel.getVar2());\r\nif (tmodel.getStr1().equals(&quot;+&quot;)) {\r\nergebnis = tmodel.Addieren();\r\n} else if (tmodel.getStr1().equals(&quot;-&quot;)) {\r\nergebnis = tmodel.Subtrahieren();\r\n} else if (tmodel.getStr1().equals(&quot;*&quot;)) {\r\nergebnis = tmodel.Multiplizieren();\r\n} else if (tmodel.getStr1().equals(&quot;\/&quot;)) {\r\nergebnis = tmodel.Dividieren();\r\n}\r\n\r\nif (tmodel.getState() == 1) {\r\nergebnis = tmodel.Ausrechnen(ergebnis);\r\ntmodel.setState(0);\r\n}\r\nSystem.out.println(ergebnis);\r\nLabel1.setText(String.valueOf(ergebnis));\r\ntmodel.setVar1(0);\r\ntmodel.setVar2(0);\r\ntmodel.setVar3(0);\r\ntmodel.setStr1(&quot;&quot;);\r\ntmodel.setStr2(&quot;&quot;);\r\ntmodel.setStr3(&quot;&quot;);\r\n}\r\nelse if (ButtonTag.equals(&quot;CLX&quot;)) {\r\nLabel1.setText(&quot;0&quot;);\r\ntmodel.setVar1(0);\r\ntmodel.setVar2(0);\r\ntmodel.setVar3(0);\r\ntmodel.setStr1(&quot;&quot;);\r\ntmodel.setStr2(&quot;&quot;);\r\ntmodel.setStr3(&quot;&quot;);\r\ntmodel.setState(0);\r\n}\r\n}\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h3>Model.java:<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package sample;\r\n\r\npublic class Model {\r\nprivate int var1 = 0;\r\nprivate int var2 = 0;\r\nprivate int var3 = 0;\r\nprivate String str1 = &quot;&quot;;\r\nprivate String str2 = &quot;&quot;;\r\nprivate String str3 = &quot;&quot;;\r\nprivate int state = 0;\r\npublic int Addieren() {\r\nSystem.out.println(&quot;addieren&quot;);\r\nreturn var1 + var2;\r\n}\r\npublic int Subtrahieren() {\r\nSystem.out.println(&quot;subtrahieren&quot;);\r\nreturn var1 - var2;\r\n}\r\npublic int Multiplizieren() {\r\nSystem.out.println(&quot;multiplizieren&quot;);\r\nreturn var1 * var2;\r\n}\r\npublic int Dividieren() {\r\nSystem.out.println(&quot;dividieren&quot;);\r\nreturn var1 \/ var2;\r\n}\r\npublic int getVar1() {\r\nreturn var1;\r\n}\r\npublic void setVar1(int int1) {\r\nvar1 = int1;\r\n}\r\npublic int getVar2() {\r\nreturn var2;\r\n}\r\npublic void setVar2(int int1) {\r\nvar2 = int1;\r\n}\r\npublic int getVar3() {\r\nreturn var3;\r\n}\r\npublic void setVar3(int int1){\r\nvar3 = int1;\r\n}\r\npublic String getStr1() {\r\nreturn str1;\r\n}\r\npublic void setStr1(String str) {\r\nstr1 = str;\r\n}\r\npublic String getStr2() {\r\nreturn str2;\r\n}\r\npublic void setStr2(String str){\r\nstr2 = str;\r\n}\r\npublic String getStr3() {\r\nreturn str3;\r\n}\r\npublic void setStr3(String str){\r\nstr3 = str;\r\n}\r\npublic int getState() {\r\nreturn state;\r\n}\r\npublic void setState(int int1) {\r\nstate = int1;\r\n}\r\npublic int CalcNewNum (int oldNum, int preNum) {\r\nreturn oldNum*10+preNum;\r\n}\r\npublic void ForceExecute (String ButtonTag) {\r\nif (ButtonTag.equals(&quot;+&quot;) || ButtonTag.equals(&quot;-&quot;)) {\r\nif (str1.equals(&quot;+&quot;)) {\r\nvar1 = Addieren();\r\n} else if (str1.equals(&quot;-&quot;)) {\r\nvar1 = Subtrahieren();\r\n} else if (str1.equals(&quot;*&quot;)) {\r\nvar1 = Multiplizieren();\r\n} else if (str1.equals(&quot;\/&quot;)) {\r\nvar1 = Dividieren();\r\n}\r\nif (state == 1) {\r\nif (str3.equals(&quot;+&quot;)) {\r\nvar1 = var3 + var1;\r\n}\r\nelse if (str3.equals(&quot;-&quot;)) {\r\nvar1 = var3 - var2;\r\n}\r\nstate = 0;\r\n}\r\n}\r\nelse if (ButtonTag.equals(&quot;*&quot;) || ButtonTag.equals(&quot;\/&quot;)) {\r\nif (str1.equals(&quot;*&quot;)) {\r\nvar1 = Multiplizieren();\r\n}\r\nelse if (str1.equals(&quot;\/&quot;)) {\r\nvar1 = Dividieren();\r\n}\r\nelse if (state == 0) {\r\nstate = 1;\r\nvar3 = var1;\r\nvar1 = var2;\r\nvar2 = 0;\r\nstr3 = str1;\r\n}\r\nelse if (state == 1) {\r\nif (str2.equals(&quot;+&quot;)) {\r\nvar1 = Addieren();\r\n} else if (str2.equals(&quot;-&quot;)) {\r\nvar1 = Subtrahieren();\r\n} else if (str2.equals(&quot;*&quot;)) {\r\nvar1 = Multiplizieren();\r\n} else if (str2.equals(&quot;\/&quot;)) {\r\nvar1 = Dividieren();\r\n}\r\n}\r\n}\r\nstr2 = ButtonTag;\r\n\r\n}\r\npublic int Ausrechnen (int int1) {\r\nint ergebnis = 0;\r\nif (str3.equals(&quot;+&quot;)) {\r\nergebnis = var3 + int1;\r\n}\r\nelse if ( str3.equals(&quot;-&quot;)) {\r\nergebnis = var3 - int1;\r\n}\r\nreturn ergebnis;\r\n}\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<h3>Sample.fxml:<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;\r\n\r\n&lt;?import javafx.scene.control.Button?&gt;\r\n&lt;?import javafx.scene.control.Label?&gt;\r\n&lt;?import javafx.scene.layout.ColumnConstraints?&gt;\r\n&lt;?import javafx.scene.layout.GridPane?&gt;\r\n&lt;?import javafx.scene.layout.Pane?&gt;\r\n&lt;?import javafx.scene.layout.RowConstraints?&gt;\r\n\r\n&lt;GridPane alignment=&quot;center&quot; hgap=&quot;10&quot; vgap=&quot;10&quot; xmlns=&quot;http:\/\/javafx.com\/javafx\/11.0.1&quot; xmlns:fx=&quot;http:\/\/javafx.com\/fxml\/1&quot; fx:controller=&quot;sample.Controller&quot;&gt;\r\n&lt;columnConstraints&gt;\r\n&lt;ColumnConstraints \/&gt;\r\n&lt;ColumnConstraints \/&gt;\r\n&lt;\/columnConstraints&gt;\r\n&lt;rowConstraints&gt;\r\n&lt;RowConstraints \/&gt;\r\n&lt;\/rowConstraints&gt;\r\n&lt;children&gt;\r\n&lt;Pane prefHeight=&quot;280.0&quot; prefWidth=&quot;230.0&quot;&gt;\r\n&lt;children&gt;\r\n&lt;Label fx:id=&quot;Label1&quot; layoutX=&quot;64.0&quot; layoutY=&quot;28.0&quot; prefHeight=&quot;17.0&quot; prefWidth=&quot;209.0&quot; text=&quot;0&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonPlus&quot; layoutX=&quot;201.0&quot; layoutY=&quot;73.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#ButtonPressed&quot; text=&quot;+&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonMinus&quot; layoutX=&quot;202.0&quot; layoutY=&quot;123.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#ButtonPressed&quot; text=&quot;-&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonMal&quot; layoutX=&quot;201.0&quot; layoutY=&quot;173.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#ButtonPressed&quot; text=&quot;*&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonDurch&quot; layoutX=&quot;201.0&quot; layoutY=&quot;223.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#ButtonPressed&quot; text=&quot;\/&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonDrei&quot; layoutX=&quot;157.0&quot; layoutY=&quot;73.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;3&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonZwei&quot; layoutX=&quot;113.0&quot; layoutY=&quot;73.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;2&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonEins&quot; layoutX=&quot;68.0&quot; layoutY=&quot;73.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;1&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonVier&quot; layoutX=&quot;67.0&quot; layoutY=&quot;123.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;4&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonFuenf&quot; layoutX=&quot;113.0&quot; layoutY=&quot;123.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;5&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonSechs&quot; layoutX=&quot;157.0&quot; layoutY=&quot;123.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;6&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonSieben&quot; layoutX=&quot;68.0&quot; layoutY=&quot;173.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;7&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonAcht&quot; layoutX=&quot;113.0&quot; layoutY=&quot;173.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;8&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonNeun&quot; layoutX=&quot;157.0&quot; layoutY=&quot;173.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;9&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonCE&quot; layoutX=&quot;64.0&quot; layoutY=&quot;223.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#SpecialButton&quot; text=&quot;CE&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonNull&quot; layoutX=&quot;113.0&quot; layoutY=&quot;223.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#NumPressed&quot; text=&quot;0&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonGleich&quot; layoutX=&quot;156.0&quot; layoutY=&quot;223.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#SpecialButton&quot; text=&quot;=&quot; \/&gt;\r\n&lt;Button fx:id=&quot;ButtonCLX&quot; layoutX=&quot;14.0&quot; layoutY=&quot;223.0&quot; mnemonicParsing=&quot;false&quot; onAction=&quot;#SpecialButton&quot; text=&quot;CLX&quot; \/&gt;\r\n&lt;\/children&gt;\r\n&lt;\/Pane&gt;\r\n&lt;\/children&gt;\r\n&lt;\/GridPane&gt;<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>Vielen Dank an Florian f\u00fcr das zur Verf\u00fcgung stellen des Codes! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Main.java: package sample; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception{ Parent root = FXMLLoader.load(getClass().getResource(&quot;sample.fxml&quot;)); primaryStage.setTitle(&quot;Taschenrechner&quot;); primaryStage.setScene(new Scene(root, 230, 280)); primaryStage.show(); } public static void main(String[] args) { launch(args); } } &nbsp; Controller.java: package sample; import javafx.fxml.FXML; import javafx.scene.control.Button; import&hellip; <\/p>\n<p class=\"toivo-read-more\"><a href=\"https:\/\/iludis.de\/?page_id=642\" class=\"more-link\">Read more <span class=\"screen-reader-text\">JavaFX-Taschenrechner Florian S.<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":{"0":"post-642","1":"page","2":"type-page","3":"status-publish","5":"entry"},"_links":{"self":[{"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/pages\/642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/iludis.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=642"}],"version-history":[{"count":0,"href":"https:\/\/iludis.de\/index.php?rest_route=\/wp\/v2\/pages\/642\/revisions"}],"wp:attachment":[{"href":"https:\/\/iludis.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}