Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: JavaFX: Toiminnot

koodaaja [23.07.2020 15:40:00]

#

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);
    }

}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta