วิธีเปลี่ยนไอคอนบนแถบชื่อเรื่องของสเตจใน java fx 2.0 ของแอปพลิเคชันของฉัน [ซ้ำกัน]

ฉันได้ลอง

 stage.getIcons().add(new Image("attuncore.jpg")); 

แต่ไม่รู้ว่าเกิดไรขึ้น..

กรุณาช่วย. ขอบคุณล่วงหน้า.


person Bipin Bhandari    schedule 23.04.2012    source แหล่งที่มา
comment
เพิ่มข้อความแสดงข้อผิดพลาดต่อท้ายคำถามของคุณ หากมี   -  person Uluk Biy    schedule 23.04.2012
comment
ฉันเดาว่าไม่พบ attuncore.jpg   -  person jewelsea    schedule 24.04.2012
comment
ปัญหาคือฉันไม่ได้รับข้อผิดพลาดใดๆ   -  person Bipin Bhandari    schedule 24.04.2012
comment
มีคำถามที่คล้ายกันใน SO โปรดดูลิงก์ด้านล่าง ไอคอนแอปพลิเคชัน JavaFX   -  person Rohit vm    schedule 24.10.2016


คำตอบ (6)


โปรแกรมตัวเต็มสำหรับมือใหม่ :) โปรแกรมนี้ตั้งค่า Stack Overflow Icon

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

อัปเดตสำหรับ 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"));

ป้อนคำอธิบายรูปภาพที่นี่

หวังว่ามันจะช่วยได้ ขอบคุณ!!

person Madan Sapkota    schedule 04.03.2013
comment
ฉันสงสัยว่าทำไมไม่มีใครโหวตให้คุณ ขอบคุณสำหรับคำตอบ - person Space Rocker; 09.04.2013
comment
ขนาดมีความสำคัญหรือไม่? ค: - person codepleb; 15.12.2015
comment
คำตอบที่สมบูรณ์แบบและขนาดไม่สำคัญ - person Terry Carter; 09.03.2017

คุณสามารถโหลดรูปภาพจาก classpath ได้ดังนี้:

new Image(XYZ.class.getResourceAsStream("/xyz.png"))

โดยที่ XYZ คือชื่อคลาส (อาจเป็นชื่อที่คุณใช้โหลดอิมเมจ) และ xyz.png คือชื่อไฟล์รูปภาพของคุณ ใส่ไว้ในไดเร็กทอรี (หรือไฟล์ JAR) ที่รวมอยู่ใน classpath ของคุณ

หากคุณต้องการวางรูปภาพไว้ข้างไฟล์ต้นฉบับ คุณต้องละอักขระ / ออก IDE ของคุณจะต้องได้รับการกำหนดค่าให้คัดลอกทรัพยากร (เช่น *.png) จาก src ไปยังไดเร็กทอรี bin แต่นี่ควรจะเป็นพฤติกรรมมาตรฐาน

person Frank Bruch    schedule 10.10.2012

รูปภาพของคุณมีขนาดที่ถูกต้องหรือไม่? Javadoc ระบุว่า:

ObservableList getIcons () สาธารณะขั้นสุดท้าย

รับภาพไอคอนเพื่อใช้ในการตกแต่งหน้าต่างและเมื่อย่อเล็กสุด รูปภาพควรมีขนาดแตกต่างกันของรูปภาพเดียวกัน และเลือกขนาดที่ดีที่สุด เช่น 16x16,32,32.

person Sergey Grinev    schedule 26.04.2012
comment
ขอบคุณ Sergey แต่ขนาดภาพไม่ส่งผลต่อที่ฉันคิดอย่างนั้น แต่ใช่แล้ว ในที่สุดฉันก็ได้วิธีแก้ปัญหาด้วยการตั้งค่าคุณสมบัติของไดเร็กทอรีการทำงานแบบสแตนด์อโลนให้เป็นแพ็คเกจที่ตำแหน่งหลักและรูปภาพของฉันถูกวางไว้ - person Bipin Bhandari; 26.04.2012
comment
โอ้ การค้นหารูปภาพเป็นปัญหา เยี่ยมมากที่คุณพบมัน มีปัญหาที่คล้ายกันมากมาย เช่น: stackoverflow.com/questions/10062270/ - person Sergey Grinev; 26.04.2012

วิธีแก้ปัญหาที่ฉันพบโดยการตั้งค่าคุณสมบัติของไดเร็กทอรีการทำงานแบบสแตนด์อโลนให้เป็นแพ็กเกจที่หลักและรูปภาพของฉันถูกวางไว้

person Bipin Bhandari    schedule 07.05.2012

อย่าลืมทำการนำเข้า

import javafx.scene.image.Image;

Image icon = new Image(getClass().getResourceAsStream("myicon.png"));
stage.getIcons().add(icon);

แทนที่ "myicon.png" ด้วยไอคอนของคุณ ในกรณีนี้จะอยู่ในโฟลเดอร์เดียวกับคลาส Java ของคุณ

person daviek19    schedule 02.09.2014

สำหรับผู้ที่มีปัญหาเรื่อง:

URL ไม่ถูกต้อง: ไม่พบ URL หรือทรัพยากรไม่ถูกต้อง

ทางออกที่ดีที่สุดคือสร้างแพ็คเกจใหม่ เช่น image.icon และย้ายรูปภาพ .png ของคุณไปที่นั่น จากนั้นคุณเพียงแค่ต้องเขียน:

Image image = new Image("/image/icons/list.png");
primaryStage.getIcons().add(image);

ฉันหวังว่านี่จะช่วยใครซักคนได้!

person Dawid    schedule 22.03.2017