Java - Não estou conseguindo passar valores de uma tela para outra

Java

27/09/2017

Pessoal, eu aqui mais uma vez (enjoando kkk).
Tava eu criando um programa pra ensinar e calcular equação do 2º grau. Estou utilizando o scene builder pra criar as telas.
Só que os valores que eu insiro na tela 1, não vão para a tela 2, mesmo eu colocando as variáveis globais (passa tudo como 0).
Se puderem me ajudar, vou agradecer muito.
Obs: a tela 2(resolução), aparece if ativar o toggle button "resolução" e apertar "calc". Else aparece só um joption mostrando os resultados

Aqui o fonte:
https://drive.google.com/file/d/0B8WYdR5WpUtkclptbG93NWJTbU0/view?usp=sharing

Vou postar o fonte em texto mesmo, caso não precisem do fxml:

Tela 1:
import java.awt.HeadlessException;
import java.io.IOException;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javax.swing.JOptionPane;

/**
 *
 * @author ASUS
 */
public class testeTela1 extends Application {
    int cont=0;
    float A, B, C, delta, raizDelta;
    float raiz1, raiz2;
    public static void main(String[] args){
        launch(args);
    }
    static Stage primaryStage;
    String nameT="Equação do 2º grau";
    @FXML TextField txtA = new TextField();
    @FXML TextField txtB = new TextField();
    @FXML TextField txtC = new TextField();
    @Override
    public void start(Stage stage) throws Exception {
        primaryStage=stage;
        String url = "FXML1.fxml";
        FXMLLoader loader = new FXMLLoader(getClass().getResource(url));
        AnchorPane root = loader.load();
        Scene cena = new Scene(root);
        primaryStage.setScene(cena);
        primaryStage.setTitle(nameT);
        primaryStage.setResizable(false);
        primaryStage.show();      
    }
    
    public void reso() throws IOException{
        if(cont==1){
        testeTela2 t = new testeTela2();
        t.start(primaryStage);
        
        }
        else{
            ensinando();
        }
    }
    
    public void resoSN(){
        cont+=1;
        if(cont>1)
            cont=0;
    }
    
    public void ensinando(){
        String valA = txtA.getText();
        String valB = txtB.getText();
        String valC = txtC.getText();
        
        try {
            
            if(valB.isEmpty() && valC.isEmpty())
                JOptionPane.showMessageDialog(null, "Isso que você está tentando fazer não é uma equação de 2ª grau kkkk");
            if(valA.isEmpty())
               valA+=1;
            if(valB.isEmpty())
               valB+=0;
            else if(valC.isEmpty())
               valC+=0;
            else{
                A=Float.parseFloat(valA);
                B=Float.parseFloat(valB);
                C=Float.parseFloat(valC);
                
                delta=B*B-4*A*C;
                raizDelta=(float) Math.sqrt(delta);
                if(delta>=0){
                    raiz1 = (-B + raizDelta) / 2*A;
                    raiz2 = (-B - raizDelta) / 2*A;
                    JOptionPane.showMessageDialog(null, "X' = "+raiz1+"\\nX'' = "+raiz2);
                    
                }
                else
                    JOptionPane.showMessageDialog(null, "Em desenvolvimento...");
                
            }
        } catch (HeadlessException e) {
            JOptionPane.showMessageDialog(null, "IHHHHH DEU MERDA kkkkkk\\nERRO: "+e.getMessage());
        }
    }
    
    
}


Tela 2:
import java.io.IOException;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javax.swing.JOptionPane;

/**
 *
 * @author ASUS
 */
public class testeTela2 extends testeTela1 {
    @FXML TextArea txtRes = new TextArea();
    String set = "";
    
    @Override
    public void start(Stage Stage) throws IOException {
        primaryStage=Stage;
        String url = "FXML2.fxml";
        
        FXMLLoader loader = new FXMLLoader(getClass().getResource(url));
        AnchorPane root = loader.load();
        Scene cena = new Scene(root);
        
        primaryStage.setScene(cena);
        
        primaryStage.setTitle(nameT);             
        primaryStage.show();
        
    }
    
    public void setando(){
        
        try {
            if(delta>=0){
            
                    set+="Numa equação de 2º grau, temos três variáveis: A, B e C."
                    +"\\nCom os valores dados por você, fizemos a seguinte resolução:"
                    +"\\n\\nPrimeiro pegamos os valores de a, b e c..."+
                    "\\na = "+A+"\\nb = "+B+"\\nc = "+C+
                    "\\n\\nEm seguida calcula-se o Δ..."+
                    "\\nΔ = b²-4.a.c"+
                    "\\nΔ = "+B+"²-4."+A+"."+C+
                    "\\nΔ = "+delta+
                    "\\n\\nAgora vamos obter as duas raízes, X' e X''..."+
                    "\\nX = -b+-(mais ou menos)√Δ/2.a"+
                    "\\nX = -"+B+"+-√"+delta+"/2."+A+
                    "\\nX' = -"+B+"+"+raizDelta+"/2."+A+
                    "\\nX' = "+(B+raizDelta)+"/"+(2*A)+
                    "\\nX' = "+raiz1+
                    "\\n\\nX'' = -"+B+"-"+raizDelta+"/2."+A+
                    "\\nX'' = "+(B-raizDelta)+"/"+(2*A)+
                    "\\nX'' = "+raiz2;
            txtRes.setText(set);
        }
        else
            txtRes.setText("Hmmm...");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "ERRO: "+e.getMessage());
        }
        
    }
    public void back() throws Exception{
        testeTela1 i = new testeTela1();
        i.start(primaryStage);
        
    }
    

}
Henrique Marino

Henrique Marino

Curtidas 1

Respostas

Guiolvr

Guiolvr

27/09/2017

Crie um objeto q possua os valores que vc quer passar de uma tela para outra, assim na outra tela vc consegue recuperar os valores.
GOSTEI 0
POSTAR