我是编码的新手,我有一个小项目要为我的班级做。 首先,我需要在显示器上放两张图片,我正在使用Jpanel标签来完成它。然而,我只做图片的方式" dog"出现。狗和猫必须在不同的面板上。我不明白为什么只有一个人出现。
这就是我所拥有的:
form_open_multipart()
=============================================== =======
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Cat extends JPanel
{
//instance variables
ImageIcon pic;
JLabel label;
public Cat()
{
//constructor
pic = new ImageIcon("/Users/dell/Desktop/runKittyRun/cat.png");
// setLayout(new BorderLayout());
label = new JLabel(pic);
add(label);
}
}
=============================================== =
import java.awt.BorderLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Dog extends JPanel
{
//instance variables
ImageIcon pic2;
JLabel label2;
public Dog()
{
//constructor
pic2 = new ImageIcon("/Users/dell/Desktop/runKittyRun/dog.png");
label2 = new JLabel(pic2);
// add(label2, BorderLayout.NORTH);
add(label2);
}
}
答案 0 :(得分:0)
JFrame
使用BorderLayout
,这意味着在默认位置(CENTER
),它只会布局添加到该位置的最后一个组件。
相反,您可以使用GridLayout
,例如
JFrame frame = new JFrame("Run Kitty Run!");
frame.setLayout(new GridLayout(2, 1));
Cat player = new Cat();
frame.add(player);
Dog pc = new Dog();
frame.add(pc);
查看How to Use GridLayout和Laying Out Components Within a Container了解更多详情和其他布局管理器的示例