自定义组件不可见 - SWING

时间:2016-05-19 12:06:49

标签: java swing jcomponent

我正在为我的Swing GUI制作一个自定义JComponent。

public class BreadCrump extends JComponent implements MouseListener,
    MouseMotionListener{
JPanel cajaPrincipal;
JLabel nombre;
JLabel propiedadUsada;
JLabel numeroApariciones; //OPCIONAL

public BreadCrump(String nombre, String relacion)
{

}

public BreadCrump(String nombre)
{
    this.nombre = new JLabel(nombre);
    this.cajaPrincipal = new JPanel();
    this.cajaPrincipal.setPreferredSize(new Dimension(60,40));
    this.cajaPrincipal.setSize(60, 40);
    this.cajaPrincipal.add(this.nombre);
    this.cajaPrincipal.setBackground(Color.blue);
    this.nombre.setLocation(10, 10);
    this.cajaPrincipal.setVisible(true);
    this.setPreferredSize(new Dimension(60,40));
    this.setSize(60,40);
    this.setBackground(Color.red);
    this.setVisible(true);
    addMouseListener(this);
addMouseMotionListener(this);

}

在这段代码中创建对象:

JPanel a = new JPanel();
JScrollPane sp = new JScrollPane(a);
    sp.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
sp.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//sp.setBounds(0, 0,father.getSize().width, height);

this.add(sp);
father.add(this, java.awt.BorderLayout.PAGE_END);
for (int i = 0; i < 8; i++) {
    BreadCrump prueba = new BreadCrump("prueba " + i);
    a.add(prueba);
}

问题在于我无法看到该组件。该组件存在于我的JPanel“a”中,并且JScrollPane会检测它,因为会出现滚动条。

我尝试将JComponent更改为JPanel并且它可以工作,我可以看到JPanel(当我更改颜色和preferredSize时)。但我不知道为什么看不到我的JComponent。

任何人都知道我做错了什么?也许我需要在组件中放置一个位置?我试图添加尺寸并且可见,但没有任何事情发生。

谢谢你的时间!

0 个答案:

没有答案