Kirjautuminen

Haku

Tehtävät

Kilpailu

Ohjelmoi tekoäly!
Kilpailuaika on päättynyt.
Nyt voi äänestää!

Keskustelu: Koodit näytille: Java: JavaFX: Kahden potenssi

Sivu 1 / 1

koodaaja [26.06.2020 12:27:35]

Lainaa #

Tämä ohjelma laskee, onko luku kahden potenssi. Tulos muuttuu tekstilaatikon arvoa muuttamalla ja näkyy RadioButtoneissa, joita on kaksi (ei ole/on kahden potenssi). En tee uusia koodivinkkejä vähään aikaan.

package javafx_kahden_potenssi;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;

public class JavaFX_Kahden_potenssi extends Application {

    @Override
    public void start(Stage primaryStage){
        //Luodaan objektit: tekstilaatikko ja valinnat.
        TextField tf = new TextField();
        RadioButton kylla = new RadioButton();
        RadioButton ei = new RadioButton();
        ToggleGroup valinnat = new ToggleGroup();
        //Laitetaan valinnat ryhmään.
        kylla.setToggleGroup(valinnat);
        ei.setToggleGroup(valinnat);
        //Luodaan TilePane asettelu.
        TilePane root = new TilePane();
        root.getChildren().add(tf);
        root.getChildren().add(kylla);
        root.getChildren().add(ei);
        //Ohjelman tulos muuttuu tekstilaatikot arvoa muuttamalla.
        tf.textProperty().addListener((observable, oldValue, newValue) -> {
            double luku = Double.valueOf(newValue);
            //Lasketaan kahden potenssi.
            //Tulos näytetään kahdella RadioButtonilla.
            while (luku % 2 == 0){
                luku /= 2.0;
                if (luku == 1){
                    kylla.setSelected(true);
                }
            }
            if (luku != 1){
             ei.setSelected(true);
            }
        });


       //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

Muista lukea kirjoitusohjeet.
Tietoa sivustosta