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.