2013-07-23 3 views
9

그래, 이걸 조금 조용히 조사해 봤어. 나는 자바에 상당히 익숙하지 만이 것이 쉽다 고 생각했다. 필자는이 사이트에서 답변을 얻은 모든 방법을 시도해 보았지만 아직 행운을 찾지 못했고, 보통 여기를 보았을 때 내가 찾고있는 것에 맞는 대답을 찾을 수있었습니다. 누구든지 JFrame의 상단 모퉁이에서 Java 아이콘을 변경하는 방법을 알고 있습니까? 나는 내 파일 경로가 아니라 내 이미지가 모두 같은 폴더에 있고 모든 것이 작동한다는 점에서 매우 긍정적이다. 이것이 내가 작동하지 않는 유일한 파일이다.JFrame에서 Java 아이콘을 변경하는 방법

이것은 내 프로그램의 기본 메뉴에 대한 제 코드의 첫 번째 부분입니다. 아이콘 이미지를 추가하려고 할 때를 제외하고는 모두 작동합니다. 아래에 입력 한 코드에는 JFrame IconImage에 대한 내용이 없으므로 작동하지 않으므로 제거했습니다. 그래서이 코드로 작업하게하는 방법을 아는 사람이 있다면 매우 높이 평가 될 것이고, 여러분을 진심으로 감사드립니다!

public class MainFrame 
{ 
private MyPanel main; 
private MyPanel2 create; 
private MyPanel3 update; 
private MyPanel4 find; 
JFrame frame = new JFrame("Main Menu:"); 

public void displayGUI() 
{ 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JPanel contentPane = new JPanel(); 
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); 
    contentPane.setLayout(new CardLayout()); 
    main = new MyPanel(contentPane, this); 
    create = new MyPanel2(contentPane); 
    update = new MyPanel3(contentPane); 
    find = new MyPanel4(contentPane); 
    contentPane.add(main, "Main Menu"); 
    contentPane.add(create, "Create Part"); 
    contentPane.add(update, "Update Part"); 
    contentPane.add(find, "Find Part"); 
    frame.setLocation(200, 200); 
    frame.setSize(700, 580); 
    frame.setContentPane(contentPane); 

    frame.setVisible(true); 

} 
+0

포스트 ** 관련 ** 코드를 만. 우리는 프레임의 아이콘이 변경된 부분에 대한 코드 벽을 검색하고 싶지 않습니다. 그런 다음 코드의 관련 부분이 무엇을 기대하고 대신 무엇을 수행하는지 예상하십시오. –

+0

이것은 변경 아이콘 부분이 있어야하는 코드의 일부입니다. 코드를 입력하는 다양한 방법을 시도했지만, JFrame의 코드에는 변경 아이콘 코드가 없습니다. –

+0

최선의 시도를 보여 주시고 어떻게되는지 말해주십시오. 힌트 : http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29, http://docs.oracle.com/javase/ 6/docs/api/javax/swing/ImageIcon.html # getImage % 28 % 29, http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html –

답변

14

답변을 드리겠습니다. 먼저 이미지가 패키지가 아닌 폴더에 있는지 확인하십시오. 다음 코드 행을 삽입합니다

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png")); 
ImageIcon icon = new ImageIcon(); 
setIconImage(icon.getImage()); 

이 코드는 클래스 경로에서 이미지를 가져옵니다 및 이미지 아이콘으로 반환 한 다음 그것을 설정합니다. 응용 프로그램에 이미지 아이콘을 추가해야합니다. 그렇지 않다면 말해주세요.

EDIT : 그게 작동하지 않는다고 말한 후에 두 번째 균열을 잡기로 결정했습니다. 먼저 이미지를 완전히 다른 폴더에 넣으십시오. 나는 보통이/res라고 부른다. 그런 다음 이미지를 거기에 넣으십시오. 지금, 선적을 위해 나는 완전히 다른 길을 택했다. 기본 로딩 대신 ImageIO를 사용하기로 결정했습니다. 이미지를로드하려면이 코드를 사용

try { 
    frame.setIconImage(ImageIO.read(new File("res/icon.png"))); 
} 
catch (IOException exc) { 
    exc.printStackTrace(); 
} 

ImageIO 로딩 이미지를 더 많이 사용할 수 있습니다. 그래도 여전히 작동하지 않으면 알려주세요.

이 파일을 JAR 파일로 내보내려면 JAR 파일과 동일한 디렉토리에있는 프로그램에서 사용한 것과 동일한 이름을 지정하십시오.

+0

이것은 나를 위해 작동하지 않았다. 심지어 패키지가 아닌 폴더에 있음을 확인했다. –

+0

코드에서 직접 넣어야한다. frame.setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE); –

+0

나는 frame.setDefaultCloseOperation 바로 앞에 코드 줄이있다. 이 방법은, 우리는 그 아이콘이 다른 일이 일어나기 전에 설정된다는 것을 알고 있습니다. –

2

예를 들어 NetBeans 프로젝트에서 src 폴더에 resources 폴더를 만듭니다.

이미지 (jpg, ...)를 거기에 넣으십시오.

당신은 ImageIO 또는 (의 getResource 포함) Toolkit, 당신이 이미지 파일 경로에/선도 포함해야 사용 여부 :이 코드가 JFrame 클래스 내에

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg")); 
setIconImage(image); 

경우, 이미지가 추가됩니다 제목 표시 줄의 아이콘으로 프레임에 추가합니다.

2

나를 위해 꽤 잘 작동합니다. JFrame을 생성 한 후에 추가하십시오.

try { 
    Image image = new ImageIcon("/icons/image.jpg").getImage(); 
    frame.setIconImage(image); 
}catch(Exception e){ 
    System.out.println("Application icon not found"); 
} 
+1

코드 전용 답변을 피하십시오. 문제의 원인, 해결 방법 및 예제 코드 (이 경우)에 대한 설명을 항상 제공해야합니다. 사람들을 돕기 위해 시간을 보내십시오. –

0
  1. 는 이미지 아이콘 (즐겨 찾기를 붙여 넣습니다.먼저 같은 패키지에서 PNG), JFrame의생성자에서
  2. 쓰기 다음 코드.

setIconImage (Toolkit.getDefaultToolkit() 된 GetImage (getClass()의 getResource ("즐겨 찾기.. png "))));

참고 : - 아이콘의 이름입니다 fav.png

0
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
      // sets the Global icon for the system 

이 코드 뒤에 넣어이 코드를 시도 :

public void displayGUI() 
{ 
관련 문제