如何将JLabel添加到不同类中的JPanel并保留其set属性。

时间:2014-04-18 15:07:59

标签: java swing user-interface jpanel jlabel

我用Java创建纸牌游戏。我的GUI类中有一个JPanel(实际上是一个JLayeredPane),并且在处理它们时会将包含卡片图像的JLabel添加到它中。这些JLabel在我的Card类中生成,并使用getImage()方法调用。此方法返回JLabel,如下所示:

public JLabel getImage(){

 String theCardName = getName()+getSuit();

 theCardName = theCardName.replaceAll("\\s+","");

 image = new ImageIcon(getClass().getResource("Images\\"+theCardName+".png"));

 cardImage = new JLabel(image,JLabel.CENTER);

 return cardImage;
}

在我的Gui课程中,我将卡片添加到JlayeredPane中,如下所示:

Card card = new Card();
jLayeredPane1.add(card.getImage(),new Integer(i));
i++ //this is just so each card is layered on top of the proceeding card.

除了我需要设置标签的边界,并希望在getImage()方法中这样做。所以我将这一行添加到getImage()方法:

cardImage.setBounds(5, 5, 60, 100); //(The first parameter in that method actually gets incremented every time the methods is called so the cards get spread out, but that's irrelevant)

这不起作用。当它返回到我的Gui类时,这些绑定参数似乎没有附带标签。

我必须做的就是在Gui课程中这样做:

Card card = new Card();
JLabel label = card.getImage();
label.setBounds(5, 5, 60, 100);
jLayeredPane1.add(label,new Integer(i));
i++;

但我更喜欢在getImage()方法中设置边界,原因有很多我不想进入。为什么我不能或有办法?

0 个答案:

没有答案