2017-09-06 1 views
0

도와주세요. 어디에서나 검색했지만 JButton에 이미지를 추가 할 수 없습니다.JButton에 이미지를 추가하는 방법?

setIcon()을 시도했지만 작동하지 않았습니다. 그에 대한

package com.GermanySimulator.states; 

import java.awt.Graphics; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.MouseEvent; 
import javax.swing.Icon; 
import javax.swing.ImageIcon; 
import javax.swing.JButton; 

import com.GermanySimulator.display.Window; 
import com.GermanySimulator.graphics.AssetsLoader; 

public class MainMenuState extends State { 

@SuppressWarnings("unused") 
private MouseEvent e; 
private int StartButtonWidth = 100; 
private int StartButtonHeight = 50; 
private int StartButtonX = Window.width/2 - StartButtonWidth; 
private int StartButtonY = Window.height/4; 
@SuppressWarnings("unused") 
private State gamestate = new GameState(); 
static Icon StartIcon = new ImageIcon("/textures/StartButton.png"); 
public static JButton StartButton = new JButton(StartIcon); 
public static boolean clicktimer = true; 

@Override 
public void tick() { 
} 

@Override 
public void render(Graphics g) { 
    g.drawImage(AssetsLoader.mainmenu, 0, 0, null); 
    StartButton.setBounds(StartButtonX, StartButtonY, StartButtonWidth, StartButtonHeight); 
    StartButton.setVisible(true); 
    StartButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      if(clicktimer == true) { 
      System.out.println("Click!"); 
      clicktimer = false; 
      } 
     } 
    }); 
} 
} 
+0

'/ textures/StartButton.png' 대신'getClass(). getResource ("textures/StartButton.png")'를 사용해보십시오. 또한'textures /'폴더는 어디에 위치해 있습니까? 내가 생각하는'src' 폴더 밑에 있어야합니다. –

답변

0

사용 javax.imageio.ImageIO하고, 작업 경로가 올바른지 확인해야합니다 : 이미지 나 게임 내 길을 만들고있어 이 내 코드는 /textures/StartButton.png

입니다 확실하지 않은 경우 모든 경로 (c : \ folder \ .... \ textures \ StartButton.png)를 제공하고 그런 것을 시도하십시오. 이것에 대한 사용 java.awt.Toolkit

JButton StartButton = new JButton(); 
     try { 
     Image startImage =ImageIO.read(getClass().getResource("/textures/StartButton.png")); 
     StartButton.setIcon(new ImageIcon(startImage)); 
     } catch (Exception ex) { 
     System.out.println(ex); 
     } 
0

:

Image image = java.awt.Toolkit.getDefaultToolkit().getImage("/textures/StartButton.png"); 
JButton button = new JButton(new ImageIcon(image)); 

주, 그 getImage() 캐시 이미지. 이를 피하려면 대신 createImage()을 사용하십시오.