Ir ao conteúdo
  • Cadastre-se

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


Posts recomendados

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

adicionado 15 minutos depois

Vou colocar o fonte em texto, 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 ***** 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);
        
    }
    

}

 

Link para o comentário
Compartilhar em outros sites

@Math.Pi Tentei o seguinte, amigo:

 

criei o metodo no inicio

 

t.valores(A, B, C);

 

na classe tela 2 eu fiz assim:

 

    void valores(float A, float B, float C) {
        a = A;
        b = B;
        c = C;
    }

E alterei as variáveis no setando();  por a, b e c

Mas os valores não passam, continuam como 0

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...