Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: JavaFX Lukujonot

JRokka [17.05.2020 19:03:43]

#

Muodostetaan lukujonoja. Lukujonoja on neljää eri tyyppiä.

/*
 * 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 javafx_lukujono;

import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.TilePane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

/**
 *
 * @author jonir
 */
public class JavaFX_lukujono extends Application {

        double luku = 0;
        double luku_2 = 0;
        public void start(Stage stage){
        //Luodaan tekstilaatikot.
        int koko = 8;
        TextField[] tekstit = new TextField[koko];
        TilePane r = new TilePane();

        for (int x = 0; x < koko; x++){
            TextField teksti = new TextField();
            tekstit[x] = teksti;
            r.getChildren().add(teksti);
        }

        Button nappain = new Button("Tulos");
        Button nappain_2 = new Button("Tyhjennä");
        r.getChildren().add(nappain);
        r.getChildren().add(nappain_2);
        EventHandler<ActionEvent> event = (ActionEvent e) -> {
            //Katsotaan lukujonon pituus.
            int i = 0;
            for (;!tekstit[i].getText().equals("") &&  i < koko; i++){

                System.out.println("");
            }

            //Katsotaan, minkä tyyppinen lukujono on.
            boolean onko_nelio = true;
            boolean onko_tulo = true;
            boolean onko_lisays = true;
            boolean onko_lisays_tupla = true;
            if (i < 2){
                onko_tulo = false;
                onko_lisays = false;
                onko_nelio = false;
                onko_lisays_tupla = false;
            }
            else {
                //Tallennetaan alkutiedot.
                String mjn = "";
                String mjn_2 = "";
                mjn = tekstit[0].getText();
                mjn_2 = tekstit[1].getText();
                luku = Double.valueOf(mjn);
                luku_2 = Double.valueOf(mjn_2);
            }
            int j = 1;
            double edellinen = luku_2/luku;
            double edellinen_s = luku_2-luku;
            double edellinen_st = luku_2-luku;

            for (; j < i; j++){
                //Tarkistetaan, onko kelvollinen lukujono.
                String mjn = "";
                String mjn_2 = "";
                mjn = tekstit[j-1].getText();
                mjn_2 = tekstit[j].getText();
                luku = Double.valueOf(mjn);
                luku_2 = Double.valueOf(mjn_2);

                //Poistetaan lukujonon mahdollisuus.
                if (edellinen != luku_2/luku){
                    onko_tulo = false;
                }
                if (edellinen_s != luku_2-luku){
                    onko_lisays = false;
                }
                if (edellinen_st != (luku_2-luku)){
                    onko_lisays_tupla = false;

                }
                edellinen_st *= 2;
                if (luku != Math.sqrt(luku_2)){
                    onko_nelio = false;
                }
            }
            //Täydennetään lukujono katsomalla lukujonon tyyppi.
            for (int x = i; x < 8; x++){
                if (onko_tulo == true){
                    //Tuplaus
                    String mjn_2 = "";

                    mjn_2 = tekstit[x-1].getText();
                    luku_2 = Double.valueOf(mjn_2);
                    double tulos = luku_2*edellinen;

                    tekstit[x].setText(String.valueOf(tulos));
                }
                else if (onko_lisays == true){
                    //Lisäys
                    String mjn_2 = "";

                    mjn_2 = tekstit[x-1].getText();
                    luku_2 = Double.valueOf(mjn_2);
                    double tulos = luku_2+edellinen_s;

                    tekstit[x].setText(String.valueOf(tulos));
                }
                else if (onko_lisays_tupla == true){
                    //Summa tuplautuu.
                    String mjn_2 ="";
                    mjn_2 = tekstit[x-1].getText();
                    luku_2 = Double.valueOf(mjn_2);
                    double tulos = luku_2+edellinen_st;

                    edellinen_st*=2;
                    tekstit[x].setText(String.valueOf(tulos));
                }
                else if (onko_nelio == true){
                    //Neliö
                    String mjn_2 = "";


                    mjn_2 = tekstit[x-1].getText();
                    luku_2 = Double.valueOf(mjn_2);
                    double tulos = Math.pow(luku_2,2);

                    tekstit[x].setText(String.valueOf(tulos));
                }
            }


        };


        EventHandler<ActionEvent> event_2 = (ActionEvent e) -> {
            //Tyhjennetään.
            for (int x = 0; x < koko; x++){
                tekstit[x].setText("");
            }


        };
        nappain.setOnAction(event);
        nappain_2.setOnAction(event_2);
        Scene scene = new Scene(r,200,200);
        stage.setTitle("Ohjelma");
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args){
        launch(args);
    }

}

Vastaus

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

Tietoa sivustosta