Lasketaan valinnan mukaan luvun neliöiden tai kuutioiden summa. Lisäksi voidaan vaihtaa kerroin tai lukujen määrä. Lisäksi voidaan laskea summa lukujen määrillä 1-x. Luvun neliöiden summan kaava on [x*(x+1)*(2*x+1)]/6 ja luvun kuutioiden summan kaava on [(x)^2*(x+1)^2]/4. Lukitsen tilini, koska en näköjään pysty olemaan lähettämättä koodeja.
package javafx_neliot; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.RadioButton; import javafx.scene.control.TextField; import javafx.scene.control.Toggle; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.TilePane; import javafx.stage.Stage; public class JavaFX_Neliot extends Application { int valinta = 1; int valinta_2 = 1; int summa = 0; @Override public void start(Stage primaryStage) { //Luodaan objektit. TextField tf = new TextField(); TextField tf2 = new TextField(); Label l = new Label(); //Luodaan radiobuttonit. RadioButton r1 = new RadioButton("Neliö"); RadioButton r2 = new RadioButton("Kuutio"); ToggleGroup tg = new ToggleGroup(); RadioButton r3 = new RadioButton("Yksi"); RadioButton r4 = new RadioButton("Jatkuva"); ToggleGroup tg2 = new ToggleGroup(); //Asetetaan radiobuttonit. r1.setToggleGroup(tg); r2.setToggleGroup(tg); r3.setToggleGroup(tg2); r4.setToggleGroup(tg2); tf.textProperty().addListener((observable, oldValue, newValue) -> { //Lasketaan neliöiden tai kuutioiden summa valinnan mukaan. //Lisäksi voidaan valita, lasketaanko vai kyseinen luku vai siihen asti. int luku = Integer.valueOf(tf.getText()); double tulos = 0; int maara = Integer.valueOf(tf2.getText()); if (valinta == 1){ //Neliö if (valinta_2 == 1){ //Yksi tulos = Math.pow(luku,2)*maara*(maara+1)*(2*maara+1)/6; } else if (valinta_2 == 2) { //Jatkuva summa = 0; summa += Math.pow(luku,2)*maara*(maara+1)*(2*maara+1)/6; for (int x = maara-1; x >= 1; x--){ summa += Math.pow(luku*x,2)*(maara-x); } tulos = summa; } } else if (valinta == 2){ //Kuutio if (valinta_2 == 1){ //Yksi tulos = Math.pow(luku,3)*((Math.pow(maara,2)*Math.pow(maara+1, 2))/4); } else if (valinta_2 == 2){ //Jatkuva summa = 0; summa += Math.pow(luku,3)*((Math.pow(maara,2)*Math.pow(maara+1, 2))/4); for (int x = maara-1; x >= 1; x--){ summa += Math.pow(luku*x,3)*(maara-x); } tulos = summa; } } //Näytetään tulos. l.setText(String.valueOf(tulos)); }); tg.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){ @Override public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) { //Tehdään valinta neliö tai kuutio. RadioButton rb = (RadioButton)tg.getSelectedToggle(); if (rb != null){ String s = rb.getText(); if (s.equals("Neliö")){ valinta = 1; } else if (s.equals("Kuutio")){ valinta = 2; } } } }); tg2.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){ @Override public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) { RadioButton rb = (RadioButton)tg2.getSelectedToggle(); //Yksi tai jatkuva if (rb != null){ String s = rb.getText(); if (s.equals("Yksi")){ valinta_2 = 1; } else if (s.equals("Jatkuva")){ valinta_2 = 2; } } } }); //Luodaan asettelu. TilePane root = new TilePane(); root.getChildren().add(tf); root.getChildren().add(tf2); root.getChildren().add(l); root.getChildren().add(r1); root.getChildren().add(r2); root.getChildren().add(r3); root.getChildren().add(r4); //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); } }
Sinun koodisi ovat ainakin koodeja. älä ihmeessä tai "ehdossa" lopeta näitten tekemistä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.