我的显示屏上只显示一个标签

时间:2015-10-15 01:51:01

标签: java swing jpanel label

我是编码的新手,我有一个小项目要为我的班级做。 首先,我需要在显示器上放两张图片,我正在使用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);
    }

}

1 个答案:

答案 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 GridLayoutLaying Out Components Within a Container了解更多详情和其他布局管理器的示例