我和一个朋友正在制作游戏,好吧,我们都不知道GUI是怎么做的。我也缺乏Java经验(业余C ++程序员),所以当我理解我正在做的事情时,你在这里工作的是什么。
我编写代码来显示带有图像的JLabel的JFrame。并且代码加载很好,但图片并没有。
这是我得到的:
package game;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public class Pic extends JFrame{
private static final long serialVersionUID = 1L;
public Pic(){
JFrame pic = new JFrame("JFrame");
JLabel player = new JLabel();
ImageIcon player_icon = new ImageIcon(getClass().getResource("/res/Untitled.bmp"));
player.setIcon(player_icon);
player.setVisible(true);
player.setSize(100, 100);
pic.setVisible(true);
player.setLocation(25, 25);
pic.setSize(200, 200);
}
public static void main (String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Pic();
}
});
}
}
这不是游戏本身的一部分,而是在一个名为res的包中放置一个随机精灵的测试。 现在我的问题:我在哪里看不到我的照片我做错了什么?我该如何解决?
我也非常感谢能够帮助学习GUI的详细答案/链接,而且我似乎无法理解我在这里找到的一些旧解释。
答案 0 :(得分:3)
ImageIcon
不支持bmp
文件格式,它支持gif
,jpeg
和png
相反,请尝试使用ImageIO
。有关详细信息,请参阅Reading/Loading an Image
BufferedImage img = ImageIO.read(getClass().getResource("/res/Untitled.bmp"));
ImageIcon player_icon = new ImageIcon(img);
此外,您还没有将JLabel
添加到任何内容......
pic.add(label);
也...
player.setVisible(true);
player.setSize(100, 100);
没有意义,Swing组件默认是可见的,框架使用布局管理器
标记Creating a GUI With JFC/Swing图书可能会有所帮助。
你可能也会发现How to Use Labels的一些用途
答案 1 :(得分:2)
你忘了将jlabel添加到jframe ..
pic.add(player);
答案 2 :(得分:1)
答案 3 :(得分:0)
关于你的另一个问题,一个很好的gui教程,我发现this book的GUI部分非常有用
答案 4 :(得分:0)
这可能是解决办法!!
ImageIcon player_icon = new ImageIcon(getClass()。getResource(" /res/Untitled.bmp"));
JLabel player = new JLabel(player_icon); //在JLabel中添加图片
pic.add(播放器); //在JFrame中添加此标签