JavaFx) Как добавить вход во вспомогательное окно в главное окно - PullRequest
0 голосов
/ 07 мая 2020

У меня есть два 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));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...