Java 我的JFrame不是';t用图片显示JLabel
我和一个朋友正在做一个游戏,我们都不知道怎么做。我还没有java(业余C++程序员)的经验,所以在我了解我正在做的事情时,你正在处理的事情。p> 我编写了代码来显示带有图像的JLabel的JFrame。代码加载良好,但图片不在那里 以下是我得到的:Java 我的JFrame不是';t用图片显示JLabel,java,swing,user-interface,Java,Swing,User Interface,我和一个朋友正在做一个游戏,我们都不知道怎么做。我还没有java(业余C++程序员)的经验,所以在我了解我正在做的事情时,你正在处理的事情。p> 我编写了代码来显示带有图像的JLabel的JFrame。代码加载良好,但图片不在那里 以下是我得到的: package game; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingUt
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,因为我似乎无法理解我在这里找到的一些旧的解释
但是照片不在那里
我看不到将标签添加到框架的位置:
pic.add( label );
我也非常希望能有一个详细的答案/链接来帮助学习GUI
从Swing教程开始。看
但是照片不在那里
我看不到将标签添加到框架的位置:
pic.add( label );
我也非常希望能有一个详细的答案/链接来帮助学习GUI
从Swing教程开始。请参阅。您忘记将jlabel添加到jframe
pic.add(player);
您忘记将jlabel添加到jframe
pic.add(player);
ImageIcon
不支持bmp
文件格式,它支持gif
、jpeg
和png
相反,请尝试使用ImageIO
。有关更多详细信息,请参阅
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组件默认可见,并且框架使用布局管理器
在书上做记号可能会有帮助
您可能还会发现一些用法
图像图标
不支持bmp
文件格式,它支持gif
、jpeg
和png
相反,请尝试使用ImageIO
。有关更多详细信息,请参阅
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组件默认可见,并且框架使用布局管理器
在书上做记号可能会有帮助
您可能也会发现一些有用的东西编辑:好的,谢谢您指出这一点。学到了一些新东西
关于你的另一个问题,一个很好的gui教程,我发现编辑的gui部分非常有用:好的,谢谢你指出这一点。学到了一些新东西
关于你的另一个问题,一个很好的gui教程,我发现的gui部分非常有用这可能是一个可行的解决方案强> ImageIcon player_icon=新的ImageIcon(getClass().getResource(“/res/Untitled.bmp”) JLabel player=新的JLabel(player_图标)//在JLabel中添加图像
图.添加(播放器);//将此标签添加到JFrame中这是可能的解决方案强> ImageIcon player_icon=新的ImageIcon(getClass().getResource(“/res/Untitled.bmp”) JLabel player=新的JLabel(player_图标)//在JLabel中添加图像
图.添加(播放器);//在JFrame中添加此标签我感到难以置信的愚蠢。。。但是谢谢你的链接和帮助。我真的应该多看看。我觉得自己非常愚蠢。。。但是谢谢你的链接和帮助。我真的应该仔细看一下。不是在这种情况下,它意味着,对于类路径中的每个元素,从那里根开始,否则,它将从试图读取资源的类的包位置开始…不是在这种情况下,它意味着,对于类路径中的每个元素,从那里根开始,否则,它将从试图读取资源的类的包位置开始…,+1。感谢图片上的不兼容通知,我也不知道swing默认为可见。@默认情况下,只有组件、窗口不可见(和
JInternalFrame
)@程序员,你能给我指出一个正确的方向吗?在这个方向上,人们可以用选定的图像绑定输入?我还想知道是否有可能使用坐标而不是像素,因为我隐约记得一些关于这种可能性的东西。什么样的输入?不,Swing只在像素上工作……布局管理器是不同的,一些工作在虚拟级别,这取决于单个布局管理器+1。感谢图片上的不兼容通知,我也不知道Swing默认为可见。@Episha只有组件,默认情况下窗口是不可见的(和JInternalFrame
)@程序员,你能给我指出一个正确的方向,将输入与选定的图像绑定在一起吗?我还想知道,是否可以使用坐标而不是像素,因为我隐约记得有一些东西提到了这种可能性。什么样的输入?不,Swing只在像素中工作……布局管理器是不同的,有些工作在像素上虚拟级别,这取决于单个布局管理器