Я хочу создать программу, в которой сфера «Планета» будет разворачиваться в направлении координаты, которую мы вводим в 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();
}
}
Перед щелчком
После нажатия
я заметил, что при нажатии на стрелки все снова становится нормальным.