Java 将JLabel添加到游戏角色的帧中
我试图在我的主要方法中添加一个带有鸡图像的JLabel。当我将标签添加到框架时,没有显示任何内容。我还需要把鸡放在有坐标的框架上。这是我的代码:Java 将JLabel添加到游戏角色的帧中,java,jframe,jlabel,Java,Jframe,Jlabel,我试图在我的主要方法中添加一个带有鸡图像的JLabel。当我将标签添加到框架时,没有显示任何内容。我还需要把鸡放在有坐标的框架上。这是我的代码: import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Toolkit; import java.awt.Container; import javax.swing.ImageIcon; import javax.sw
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.Container;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TEST extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
TEST(){
add(new ContentPanel());
setSize(1440, 500);
}
public static void main(String[] args) {
TEST jrframe = new TEST();
jrframe.setVisible(true);
JLabel chicken = new JLabel(" ");
ImageIcon chick = new ImageIcon("chicken.gif");
chicken.setIcon(chick);
JPanel p1 = new JPanel();
p1.add(chicken);
jrframe.add(p1);
p1.setLocation(0, 0);
}
}
class ContentPanel extends JPanel{
Image bgimage = null;
ContentPanel() {
MediaTracker mt = new MediaTracker(this);
bgimage = Toolkit.getDefaultToolkit().getImage("level0.gif");
mt.addImage(bgimage, 0);
try {
mt.waitForAll();
} catch (InterruptedException e){
e.printStackTrace();
}
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
int imwidth = bgimage.getWidth(null);
int imheight = bgimage.getHeight(null);
g.drawImage(bgimage, 1, 1, null);
}
}
您正在将组件添加到已可见的框架中。执行此操作时,您需要通知LayoutManager发生此情况,或者最好在添加组件后移动调用
setVisible(true)
我建议在上构建您的UI,并在尝试更改jrframe.setVisible(true)时遵循;在jrframe.add(p1);,它将仅显示该面板中的图像。这是由于LayoutManager-内容窗格的默认LayoutManager为BorderLayout,其中心位置不能有两个组件。为了演示,在测试构造函数的第一行中,通过调用getContentPane().setLayout(newflowlayout())
更改布局,以获取更多信息。