Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Henrique_M

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

Recommended Posts

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);
        
    }
    

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite.

Sugiro criar uma classe com as variáveis que deverão ser armazenadas e usar construtores para armazenar e receber os valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @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

    Editado por Henrique_M

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×