私は試してみました
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"));
また
stage.getIcons().add(new Image("https://example.com/javaicon.png"));
それが役に立てば幸い。ありがとう!!
次のように、クラスパスからイメージをロードできます。
new Image(XYZ.class.getResourceAsStream("/xyz.png"))
ここで、XYZ は何らかのクラス名 (おそらくイメージのロード元) であり、xyz.png はイメージ ファイルの名前で、クラスパスに含まれるディレクトリ (または JAR ファイル) に配置されます。
ソース ファイルの横に画像を配置する場合は、/ 文字を省略してください。次に、リソース (*.png など) を src から bin ディレクトリにコピーするように IDE を構成する必要があります。しかし、これは標準的な動作であるはずです。
画像のサイズは正しいですか?Javadoc は次のように述べています。
public final ObservableList getIcons()
ウィンドウの装飾と最小化時に使用されるアイコン イメージを取得します。画像は同じ画像の異なるサイズである必要があり、最適なサイズが選択されます。16x16、32、32。
スタンドアロンの作業ディレクトリのプロパティを、メインとイメージが配置されているパッケージに設定することで見つけた解決策。