私は試しました
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);
}
}
出力スクレンショット
JavaFX 8用に更新
コードを変更する必要はありません。それでも問題なく動作します。 Java 1.8(1.8.0_45)でテストおよび検証されています。パスはローカルまたはリモートに設定でき、両方がサポートされています。
stage.getIcons().add(new Image("/path/to/javaicon.png"));
OR
stage.getIcons().add(new Image("https://example.com/javaicon.png"));
それが役に立てば幸い。ありがとう!!
次のようにクラスパスからイメージをロードできます。
new Image(XYZ.class.getResourceAsStream("/xyz.png"))
ここで、XYZはクラス名(画像のロード元のクラス)であり、xyz.pngはクラスパスに含まれるディレクトリ(またはJARファイル)に置かれる画像ファイルの名前です。
ソースファイルの横に画像を配置する場合は、/文字を省略する必要があります。あなたのIDEは、(*。pngのような)リソースをsrcからbinディレクトリにコピーするように設定する必要があります。しかし、これは標準的な動作であると思われます。
スタンドアロンの作業ディレクトリのプロパティを、メインとイメージが配置されているパッケージに設定することで見つけた解決策。
に問題があった人のために:
無効なURL:無効なURLまたはリソースが見つかりません
最善の解決策は、新しいパッケージ、つまりimage.iconsを作成し、そこに.png画像を移動することです。それからあなたは書くだけです:
Image image = new Image("/image/icons/list.png");
primaryStage.getIcons().add(image);
これが誰かに役立つことを願っています!
インポートを行うことを忘れないでください
import javafx.scene.image.Image;
Image icon = new Image(getClass().getResourceAsStream("myicon.png"));
stage.getIcons().add(icon);
置換"myicon.png"
をアイコンに追加します。この場合は、Javaクラスと同じフォルダーにあります。
画像のサイズは正しいですか? Javadocの状態:
public ObservableList getIcons()
ウィンドウの装飾で、最小化されたときに使用されるアイコン画像を取得します。画像は同じ画像の異なるサイズである必要があり、最適なサイズが選択されます。 16x16、32、32。