Я пробовал
stage.getIcons().add(new Image("attuncore.jpg"));
Но я не знаю, что происходит не так.
Пожалуйста, помогите. Спасибо заранее.
Я пробовал
stage.getIcons().add(new Image("attuncore.jpg"));
Но я не знаю, что происходит не так.
Пожалуйста, помогите. Спасибо заранее.
Полная программа для начинающих:) В этой программе установлен значок.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class StackoverflowIcon extends Application {
@Override
public void start(Stage stage) {
StackPane root = new StackPane();
// set icon
stage.getIcons().add(new Image("/path/to/stackoverflow.jpg"));
stage.setTitle("Wow!! Stackoverflow Icon");
stage.setScene(new Scene(root, 300, 250));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Вывод Screnshot
Обновлен для JavaFX 8
Не нужно менять код. Он все еще работает нормально. Протестировано и проверено в Java 1.8 (1.8.0_45). Путь может быть установлен на локальный или удаленный, оба поддерживаются.
stage.getIcons().add(new Image("/path/to/javaicon.png"));
ИЛИ
stage.getIcons().add(new Image("https://example.com/javaicon.png"));
Надеюсь, это поможет. Спасибо!!
Вы можете загрузить изображение из пути к классам следующим образом:
new Image(XYZ.class.getResourceAsStream("/xyz.png"))
где XYZ - некоторое имя класса (возможно, тот, с которого вы загружаете изображение), и xyz.png - это имя вашего файла изображения, помещенного в каталог (или файл JAR), включенный в ваш путь к классам.
Если вы хотите поместить изображение рядом с исходным файлом, вы должны опустить символ /. Затем ваша IDE должна быть настроена для копирования ресурсов ressources (например, *.png) из каталога src в bin. Но это должно быть стандартным поведением.
У вашего изображения правильный размер? В Javadoc говорится:
public final ObservableList getIcons()
Получает изображения значков, которые будут использоваться в оформлении окон, и когда сведено к минимуму. Изображения должны быть разных размеров одного и того же изображения и выбирается лучший размер, например. 16x16, 32,32.
Решение, которое я нашел, установив свойства автономного рабочего каталога в пакет, где размещается моя основная и имиджевая.
Не забудьте сделать импорт
import javafx.scene.image.Image;
Image icon = new Image(getClass().getResourceAsStream("myicon.png"));
stage.getIcons().add(icon);
Замените "myicon.png"
на значок. В этом случае он находится в той же папке, что и ваш класс java.
Для тех, у кого была проблема с:
Недопустимый URL: неверный URL-адрес или ресурс не найден
Лучшим решением является создание нового пакета i.e image.icons и перемещение туда вашего .png-изображения. Тогда вам просто нужно написать:
Image image = new Image("/image/icons/list.png");
primaryStage.getIcons().add(image);
Надеюсь, это поможет кому-то!