Когда вы нажимаете на TextField, Sphere, который был на фоне, переходите на передний план - PullRequest
0 голосов
/ 09 ноября 2019

Я хочу создать программу, в которой сфера «Планета» будет разворачиваться в направлении координаты, которую мы вводим в TextFields. Но также будут кнопки, которые увеличивают размер. Следовательно, сфера расположена за изображением PNG, которое называется «Интерфейс», с пустотой. Проблема в том, что все в порядке при запуске, но когда вы нажимаете текстовое поле, сфера перемещается на передний план.

import javafx.application.Application;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.image.*;
import javafx.scene.layout.Pane;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class MainProgram extends Application {

    private static final double AppWidth  = 1500;
    private static final double AppHeight = 1000;
    private static double X = 0;
    private static double Y = 0;
    public static Sphere Planet = new Sphere(600);

    public Group Earth() {

         Planet.setTranslateX(500);
         Planet.setTranslateY(500);
         PhongMaterial EarthMaterial = new PhongMaterial();
         EarthMaterial.setDiffuseMap(new Image("images/DefultMap.jpg"));
         EarthMaterial.setBumpMap(new Image("images/ReliefMap.jpg"));
         EarthMaterial.setSpecularMap(new Image("images/SpecularMap.jpg"));
         Planet.setMaterial(EarthMaterial);
         return new Group(Planet);
    }

    public Group TextSet() {

        TextField FieldX = new TextField();
        FieldX.setFont(new Font("TimesNewRoman", 25));
        FieldX.setPrefWidth(110);
        FieldX.setTranslateX(1060);
        FieldX.setTranslateY(400);

        TextField FieldY = new TextField();
        FieldY.setFont(new Font("TimesNewRoman", 25));
        FieldY.setPrefWidth(110);
        FieldY.setTranslateX(1280);
        FieldY.setTranslateY(400);

        return new Group(FieldX, FieldY);
    }

    public Group CreateGroup() {
        Rectangle Background = new Rectangle(0, 0, (int)AppWidth, (int)AppHeight);
        Background.setFill(Color.BLACK);

        ImageView Interface = new ImageView(new Image("images/Interface.png"));         

        return new Group(Background, Earth(), Interface, TextSet());
    }
    public void start(Stage MainStage) {
        Group MainGroup = CreateGroup();
        Pane MainPane = new Pane(MainGroup);
        Scene MainScene = new Scene(MainPane, AppWidth, AppHeight); 
        MainStage.setScene(MainScene);
        MainStage.setTitle("EarthViewer.exe");
        MainStage.setResizable(false);
        MainStage.getIcons().add(new Image("images/PlanetIcon.png"));
        MainStage.setMaxHeight(1030);
        MainStage.setMaxWidth(1500);
        MainStage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

Перед щелчком

После нажатия

я заметил, что при нажатии на стрелки все снова становится нормальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...