У меня есть два windows, один express Температура по Фаренгейту и другой express Температура по Цельсию, если я добавляю число в главном окне (Фаренгейт) и нажимаю кнопку «Поднять», а текстовое поле другого окна (по Цельсию) обновляется с вводом основного окно. Итак, я делаю кнопку, чтобы создать новое окно и Faren (главное окно) в градусы Цельсия (дополнительное окно), и как отменить этот ввод? вот мой код и извините мой плохой engli sh.
Main. java
package temperature;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
FXMLLoader loader = new FXMLLoader(getClass().getResource("test.fxml"));
@Override
public void start(Stage primaryStage) {
try {
Parent root = loader.load();
Scene scene = new Scene(root);
primaryStage.setTitle("Farenheit Temperature");
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Controller. java
package temperature;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.*;
import java.util.Observable;
import java.util.Observer;
import java.io.IOException;
import java.net.URL;
import java.util.*;
public class Controller {
boolean check=false;
@FXML
private TextField txtMsg;
@FXML
private Button btnRaise;
@FXML
private Button btnLower;
@FXML
private Button openC;
FXMLLoader loader = new FXMLLoader(getClass().getResource("test2.fxml"));
public void Raise(){
try{
double n = Double.parseDouble(txtMsg.getText());
n++;
txtMsg.setText(Double.toString(n));
if(check)
{
Controller2 Scene2 = (Controller2)loader.getController();
Scene2.showInformation((n-32)*0.5555556);
}
} catch (NumberFormatException nfe){
System.out.println("input numbers");
return;
}
System.out.println("raise clicked");
}
public void Lower(){
try{
double n = Double.parseDouble(txtMsg.getText());
n--;
txtMsg.setText(Double.toString(n));
if(check)
{
Controller2 Scene2 = loader.getController();
Scene2.showInformation((n-32)*0.5555556);
}
} catch (NumberFormatException nfe){
System.out.println("input numbers");
return;
}
System.out.println("lower clicked");
}
public void openCC() throws IOException{
if(!check){
Parent root = loader.load();
Stage stage = new Stage();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Celsius Temperature");
stage.show();
check=true;
}
else{
System.out.println("already opened");
}
}
public void showInformation(double name){
txtMsg.setText(Double.toString(name));
}
}
Controller2. java
package temperature;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.*;
import java.util.Observable;
import java.util.Observer;
import java.io.IOException;
import java.net.URL;
import java.util.*;
public class Controller {
boolean check=false;
@FXML
private TextField txtMsg;
@FXML
private Button btnRaise;
@FXML
private Button btnLower;
@FXML
private Button openC;
FXMLLoader loader = new FXMLLoader(getClass().getResource("test2.fxml"));
public void Raise(){
try{
double n = Double.parseDouble(txtMsg.getText());
n++;
txtMsg.setText(Double.toString(n));
if(check)
{
Controller2 Scene2 = (Controller2)loader.getController();
Scene2.showInformation((n-32)*0.5555556);
}
} catch (NumberFormatException nfe){
System.out.println("input numbers");
return;
}
System.out.println("raise clicked");
}
public void Lower(){
try{
double n = Double.parseDouble(txtMsg.getText());
n--;
txtMsg.setText(Double.toString(n));
if(check)
{
Controller2 Scene2 = loader.getController();
Scene2.showInformation((n-32)*0.5555556);
}
} catch (NumberFormatException nfe){
System.out.println("input numbers");
return;
}
System.out.println("lower clicked");
}
public void openCC() throws IOException{
if(!check){
Parent root = loader.load();
Stage stage = new Stage();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Celsius Temperature");
stage.show();
check=true;
}
else{
System.out.println("already window open");
}
}
public void showInformation(double name){
txtMsg.setText(Double.toString(name));
}
}