Проблема с Ubuntu 18.04 и JavaFX

Я думаю, что мог заметить проблему с JavaFX и Ubuntu 18.04. Недавно я опубликовал вопрос о переполнении стека здесь . У парня, который ответил, похоже, не было проблем с моим кодом. У меня нет компьютеров под управлением Windows или OS / X, поэтому я не могу проверить это сам.

Моя проблема в том, что в зависимости от параметров строки / столбца объекта GridPane я не вижу ни заголовка, ни кнопок, которые я пытаюсь добавить в окно.

Это скорее всего проблема с совместимостью с Ubuntu / JavaFX или я просто что-то не так делаю?

Видеокарта: Zotac GTX 1080Ti

Версия Java: Oracle Java 8 [ 119]

IDE: Eclipse 2018-09

Мой класс MainMenu:

package application;

import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;

public class MainMenu extends Stage{
   /*private Button[] buttArr = {new Button("New Game"),
             new Button("Save Game"),
             new Button("Load Game"),
             new Button("Exit Game")}; */

   Button newGame = new Button("New Game");
   Button saveGame = new Button("Save Game");
   Button loadGame = new Button("Load Game");
   Button exitGame = new Button("Exit Game");

   private Label title = new Label("Bandit King");
   private GridPane grid = new GridPane();
   private VBox menuItems = new VBox();

   MainMenu() {
      grid.setHgap(10);
      grid.setVgap(10);
      grid.setPadding(new Insets(0, 10, 0, 10));

      menuItems.getChildren().addAll(newGame, saveGame, loadGame, exitGame);
      menuItems.setAlignment(Pos.CENTER_LEFT);
      menuItems.setSpacing(30);

      grid.add(title, 9, 7);
      grid.add(menuItems, 5, 25);


      this.setScene(new Scene(grid, 1600, 900));
      this.setTitle("Bandit King");
      // this.show();

      // set title font
      Font.loadFont(getClass().getResourceAsStream("/fonts/OLDSH.TFF"), 1);
      title.setFont(new Font("OldStyle 1 HPLHS", 100));
      title.getStyleClass().add("title");

      // set New Game Button action
      newGame.setOnAction(new EventHandler<ActionEvent>() {
         @Override
         public void handle(ActionEvent t) {
            // new Hideout();
         }
      });

      // set Save Game Button action
      saveGame.setOnAction(new EventHandler<ActionEvent>() {
         @Override
         public void handle(ActionEvent t) {
            System.out.println("WIP- save game");
         }
      });

      // set Load Game Button action
      loadGame.setOnAction(new EventHandler<ActionEvent>() {
         @Override
         public void handle(ActionEvent t) {
            System.out.println("WIP- load game");
         }
      });

      // set Exit Game Button action
      exitGame.setOnAction(new EventHandler<ActionEvent>() {
         @Override
         public void handle(ActionEvent t) {
            Platform.exit();
            System.exit(0);
         }
      });

   }
}

MainClass (где вызывается MainMenu):

package application;

import javafx.application.Application;
import javafx.stage.Stage;

public class MainClass extends Application {

   @Override
   public void start (Stage stage) {
      MainMenu mainMenu = new MainMenu();

      stage = mainMenu;

      stage.show();
   }



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

}

Вот что отображается: enter image description here

0
задан 12 October 2018 в 22:50

0 ответов

Другие вопросы по тегам:

Похожие вопросы: