2017-09-06 10 views
0

助けてください。どこでも検索しましたが、JButtonに画像を追加することはできません。JButtonに画像を追加するには?

私はsetIcon()を試しましたが、これは機能しませんでした。 私はゲームを作ってるんだし、画像への私の道があり、私のコードがある

を/textures/StartButton.pngされています。そのために使用javax.imageio.ImageIO

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

と、それは、パスが正しいことを確認して、動作するはずですあなたがすべてのパス(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()を代わりに使用してください。