Сегодня я столкнулся со следующей проблемой:
Я установил заголовок для primaryStage, используя метод setTitle()
. Этот заголовок корректно отображается в окне, но когда я наведите курсор на значок программы на панели инструментов ОС, я вижу только путь к основному классу программы (см. Скриншот ниже). Как я могу это исправить?
Заголовок в окне программы и Заголовок в Dockbar ОС . И я использую этот код:
@Override
public void start(Stage stage) throws IOException {
this.stage = stage;
instance = this;
// App initialization
Parent root = FXMLLoader.load(SlimeBot.class.getClassLoader().getResource("fxml/Main.fxml"));
Scene scene = new Scene(root, 800, 600);
stage.setTitle("SlimeBot - Панель управления");
stage.setScene(scene);
stage.show();
}
Попытка установить заголовок, используя поле в java.awt.Toolkit
:
@Getter
private static SlimeBot instance;
static {
try {
Toolkit xToolkit = Toolkit.getDefaultToolkit();
java.lang.reflect.Field awtAppClassNameField = xToolkit.getClass().getDeclaredField("awtAppClassName");
awtAppClassNameField.setAccessible(true);
awtAppClassNameField.set(xToolkit, "SlimeBot - Панель управления");
} catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InterruptedException {
launch(args);
}
@Getter
private Stage stage;
@Override
public void start(Stage stage) throws IOException {
this.stage = stage;
instance = this;
// App initialization
Parent root = FXMLLoader.load(SlimeBot.class.getClassLoader().getResource("fxml/Main.fxml"));
Scene scene = new Scene(root, 800, 600);
stage.setTitle("SlimeBot - Панель управления");
stage.setScene(scene);
stage.show();
}
}```