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); } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.