JavaFX in Java
class Calculator
{ public double calculate
( final char operator,
final double number1,
final double number2 )
{ final double result; switch( operator )
{ case '+': result = number1 + number2; break;
case '-': result = number1 - number2; break;
case '*': result = number1 * number2; break;
case '/': result = number1 / number2; break;
default: result = 0; break; }
return result; }}public final class Main extends javafx.application.Application
{ private final javafx.scene.control.TextField n
= new javafx.scene.control.TextField();
private final javafx.scene.control.TextField m
= new javafx.scene.control.TextField();
private final javafx.scene.control.TextField r
= new javafx.scene.control.TextField();
final Calculator calculator = new Calculator();final @java.lang.Override public void start
( final javafx.stage.Stage primaryStage )
{final javafx.scene.control.MenuBar menuBar
= new javafx.scene.control.MenuBar();final javafx.scene.control.Menu actionMenu
= new javafx.scene.control.Menu( "Aktion" );
final javafx.scene.control.Menu exitMenu
= new javafx.scene.control.Menu( "Beenden" );menuBar.getMenus().addAll( actionMenu, exitMenu );
final javafx.scene.control.MenuItem addMenuItem
= new javafx.scene.control.MenuItem( "Addieren" );
final javafx.scene.control.MenuItem subtractMenuItem
= new javafx.scene.control.MenuItem( "Subtrahieren" );
final javafx.scene.control.MenuItem multiplyMenuItem
= new javafx.scene.control.MenuItem( "Multiplizieren" );
final javafx.scene.control.MenuItem menuItemDivide
= new javafx.scene.control.MenuItem( "Teilen" );actionMenu.getItems().addAll
( addMenuItem, subtractMenuItem,
multiplyMenuItem, menuItemDivide );final javafx.scene.control.MenuItem closeMenuItem
= new javafx.scene.control.MenuItem( "Schliessen" );exitMenu.getItems().add( closeMenuItem );
final javafx.scene.layout.HBox hBox1
= new javafx.scene.layout.HBox( 10 );
n.setPrefColumnCount( 3 );
m.setPrefColumnCount( 3 );
r.setPrefColumnCount( 3 );
hBox1.getChildren().addAll
( new javafx.scene.control.Label( "Zahl 1:" ), n,
new javafx.scene.control.Label( "Zahl 2:" ), m,
new javafx.scene.control.Label( "Ergebnis:" ), r );
hBox1.setAlignment( javafx.geometry.Pos.CENTER );final javafx.scene.layout.HBox hBox2
= new javafx.scene.layout.HBox( 10 );
final javafx.scene.control.Button addButton
= new javafx.scene.control.Button( "Addieren" );
final javafx.scene.control.Button subtractButton
= new javafx.scene.control.Button( "Subtrahieren" );
final javafx.scene.control.Button multiplyButton
= new javafx.scene.control.Button( "Multiplizieren" );
final javafx.scene.control.Button divideButton
= new javafx.scene.control.Button( "Dividieren" );
hBox2.getChildren().addAll
( addButton, subtractButton, multiplyButton, divideButton );
hBox2.setAlignment( javafx.geometry.Pos.CENTER );final javafx.scene.layout.VBox vBox
= new javafx.scene.layout.VBox( 12 );
vBox.getChildren().addAll( menuBar, hBox1, hBox2 );
final javafx.scene.Scene scene
= new javafx.scene.Scene( vBox, 300, 100 );
primaryStage.setTitle( "Rechner" );
primaryStage.setScene( scene );
primaryStage.show();addMenuItem.setOnAction( e -> perform( '+' ));
subtractMenuItem.setOnAction( e -> perform( '-' ));
multiplyMenuItem.setOnAction( e -> perform( '*' ));
menuItemDivide.setOnAction( e -> perform( '/' ));
closeMenuItem.setOnAction( e -> java.lang.System.exit( 0 ));addButton.setOnAction( e -> perform( '+' ));
subtractButton.setOnAction( e -> perform( '-' ));
multiplyButton.setOnAction( e -> perform( '*' ));
divideButton.setOnAction( e -> perform( '/' )); }private void perform( final char operator )
{ r.setText
( calculator.calculate
( operator,
java.lang.Double.parseDouble( n.getText()),
java.lang.Double.parseDouble( m.getText() )) + "" ); }; }