Ohjelman neljä toimintoa (fibonacci, tribonacci, pascal, leibniz) vaihdetaan laittamalla hiiri ikkunassa olevan näppäimen päälle (ei siis tarvitse painaa näppäintä). Luvut lasketaan aina tekstikentän arvon muuttuessa.
package javafx_toiminnot; import javafx.application.Application; import static javafx.application.Application.launch; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.TextField; import javafx.scene.input.MouseEvent; import javafx.scene.layout.TilePane; import javafx.stage.Stage; public class JavaFX_Toiminnot extends Application { int valinta = 0; //Valintoja on neljä. @Override public void start(Stage primaryStage) { //Tehdään asettelu. Button btn = new Button("Valitse"); TextField teksti = new TextField(); TilePane root = new TilePane(); //Lisätään objektit. root.getChildren().add(btn); root.getChildren().add(teksti); //Lasketaan luvut aina, kun tekstikenttä muuttuu. //Tekstikentän arvo ei saa olla tyhjä. teksti.textProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) { int maara = 0; //Otetaan lukujen määrä. if (!teksti.getText().equals("")){ maara = Integer.valueOf(teksti.getText()); } //Seuraavilla muuttujilla operoidaan laskuja. int a = 0; int b = 0; int c = 0; switch (valinta){ case 1: //Fibonacci. a = 0; b = 1; c = 0; System.out.println("Fibonacci"); for (int x = 0; x < maara; x++){ c = a+b; a = b; b = c; System.out.println(c); } break; case 2: //Tetraedri a = 0; b = 0; c = 0; System.out.println("Tetraedri"); for (int x = 0; x < maara; x++){ a++; b += a; c += b; System.out.println(c); } break; case 3: //Pascal a = 1; b = maara-1; //Kertoja c = 1; //Jakaja //Kertoja pienenee ja jakaja kasvaa joka kierroksella. System.out.println("Pascal"); for (int x = 0; x < maara; x++){ System.out.println(a); a *= b; a /= c; b--; c++; } break; case 4: //Leibniz a = 1; b = maara; //Kertoja c = 0; //Jakaja //Kertoja pienenee ja jakaja kasvaa joka kierroksella. System.out.println("Leibniz"); for (int x = 0; x < maara; x++){ a *= b; if (c > 0){ a /= c; } System.out.println(1 + "/" + a); b--; c++; } break; } } }); //Toimintoa vaihdetaan aina, kun hiiri menee näppäimen päälle. btn.addEventHandler(MouseEvent.MOUSE_ENTERED, (MouseEvent event) -> { valinta++; if (valinta > 4){ //Aloitetaan alusta. valinta = 1; } }); //Luodaan ikkuna. Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.