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.