Java에서 기본 응용 프로그램 아이콘을 어떻게 변경합니까?

StackOverflow https://stackoverflow.com/questions/209812

  •  03-07-2019
  •  | 
  •  

문제

NetBeans를 사용하여 친숙한 Java Coffee Cup 아이콘을 JAR 파일의 리소스 디렉토리에 저장 한 PNG 파일로 변경하려고합니다. 솔루션이 있다고 주장하는 여러 웹 페이지를 찾았지만 지금까지는 아무도 작동하지 않습니다.

현재 내가 가진 것 (Try-Catch 블록을 남기는 것)은 다음과 같습니다.

URL url = new URL("com/xyz/resources/camera.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
getFrame().setIconImage(img);

이 코드를 포함하는 클래스는 com.xyz 패키지, 그것이 차이가있는 경우. 그 수업은 또한 JFrame을 확장합니다. 이 코드는 첫 번째 줄에 mullformedurlexception을 던지고 있습니다.

누구든지 작동하는 솔루션이 있습니까?

도움이 되었습니까?

해결책

java.net.URL url = ClassLoader.getSystemResource("com/xyz/resources/camera.png");

경로의 앞쪽에 '/'가 필요하거나 필요하지 않을 수 있습니다.

다른 팁

디자인보기에서 단순히 Netbeans를 가면 JFrame 속성, 아이콘 이미지 속성을 선택하고 양식 세트를 선택합니다. iconImage "사용자 정의 코드"를 사용한 속성과 Form.SetIconImage() 함수 다음 코드를 넣습니다.

Toolkit.getDefaultToolkit().getImage(name_of_your_JFrame.class.getResource("image.png"))

가져 오는 것을 잊지 마십시오 :

import java.awt.Toolkit;

소스 코드에서!

또는 클래스에 대한 위치에 이미지를 배치하면 문자열 자체의 모든 패키지/경로 정보가 필요하지 않습니다.

com.xyz.SomeClassInThisPackage.class.getResource( "resources/camera.png" );

이렇게하면 클래스를 다른 패키지로 옮기면 모든 문자열을 찾을 필요가 없으며 클래스와 리소스 디렉토리를 이동합니다.

이 쓰기를 시도하십시오

initcomponents();

setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Your image address")));
    /** Creates new form Java Program1*/
    public Java Program1() 


    Image im = null;
    try {
    im = ImageIO.read(getClass().getResource("/image location"));
    } catch (IOException ex) {
    Logger.getLogger(chat.class.getName()).log(Level.SEVERE, null, ex);
    }
    setIconImage(im);

이것이 제가 Netbeans의 GUI에서 사용한 것입니다.

a javax.swing.JFrame 사용 방법 setIconImage.

this.setIconImage(new ImageIcon(getClass().getResource("/resource/icon.png")).getImage());

Ubuntu와 같은 다양한 크기, Windows 및 Linux 배포판의 아이콘을 정의해야합니다. 작업 표시 줄 및 Alt-Tab에서 다른 아이콘을 사용합니다.

public static final URL ICON16 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug16.png");
public static final URL ICON32 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug32.png");
public static final URL ICON96 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug96.png");

List<Image> images = new ArrayList<>();
try {
    images.add(ImageIO.read(HelperUi.ICON96));
    images.add(ImageIO.read(HelperUi.ICON32));
    images.add(ImageIO.read(HelperUi.ICON16));
} catch (IOException e) {
    LOGGER.error(e, e);
}

// Define a small and large app icon
this.setIconImages(images);

예시:

URL imageURL = this.getClass().getClassLoader().getResource("Gui/icon/report-go-icon.png");
ImageIcon iChing = new ImageIcon("C:\\Users\\RrezartP\\Documents\\NetBeansProjects\\Inventari\\src\\Gui\\icon\\report-go-icon.png");      
btnReport.setIcon(iChing); 
System.out.println(imageURL);

내부 프레임 생성자

try{    
       setIconImage(ImageIO.read(new File("./images/icon.png")));   
   }
catch (Exception ex){
       //do something
   }

당신은 시도 할 수 있습니다 이 하나, 그것은 잘 작동합니다 :

`   ImageIcon icon = new ImageIcon(".//Ressources//User_50.png");
    this.setIconImage(icon.getImage());`
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top