Java - Não estou conseguindo passar valores de uma tela para outra
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:
Tela 2:
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
Curtidas 1
Respostas
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