我的 JFrame 没有显示带有图片的 JLabel
My JFrame isn't displaying the JLabel with a picture
我和一个朋友正在做游戏,而且我们都不知道 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 的包中。
现在我的问题是:我做错了什么导致我看不到我的照片,我该如何解决这个问题?
我也非常感谢详细的 answer/link 可以帮助学习 GUI,而且我似乎无法理解我在此处找到的一些较旧的解释。
but the picture isn't there.
我没看到你在框架中添加标签的位置:
pic.add( label );
I would also really appreciate a detailed answer/link that could help with learning GUIs
从 Swing 教程开始。参见 How to Use Icons。
您忘记将 jlabel 添加到 jframe..
pic.add(player);
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 也有一些用处
编辑:好的,感谢您指出 madprogrammer。学到了新东西
关于你的另一个问题,一个很好的 gui 教程,我发现 this book 的 GUI 部分很有帮助
这可能是可行的解决方案!!
ImageIcon player_icon = new ImageIcon(getClass().getResource("/res/Untitled.bmp"));
JLabel 播放器 = new JLabel(player_icon); //在JLabel中添加图片
pic.add(玩家); // 在 JFrame
中添加这个标签
我和一个朋友正在做游戏,而且我们都不知道 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 的包中。 现在我的问题是:我做错了什么导致我看不到我的照片,我该如何解决这个问题?
我也非常感谢详细的 answer/link 可以帮助学习 GUI,而且我似乎无法理解我在此处找到的一些较旧的解释。
but the picture isn't there.
我没看到你在框架中添加标签的位置:
pic.add( label );
I would also really appreciate a detailed answer/link that could help with learning GUIs
从 Swing 教程开始。参见 How to Use Icons。
您忘记将 jlabel 添加到 jframe..
pic.add(player);
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 也有一些用处
编辑:好的,感谢您指出 madprogrammer。学到了新东西
关于你的另一个问题,一个很好的 gui 教程,我发现 this book 的 GUI 部分很有帮助
这可能是可行的解决方案!!
ImageIcon player_icon = new ImageIcon(getClass().getResource("/res/Untitled.bmp"));
JLabel 播放器 = new JLabel(player_icon); //在JLabel中添加图片
pic.add(玩家); // 在 JFrame
中添加这个标签