[英]Cannot make JPanel components show
我有这个类, Carta
,我用它来画一张卡片。 油漆方法本身很好用:
@Override
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
RoundRectangle2D rect2 = new RoundRectangle2D.Double(posicio.x + CARD_WIDTH + 20,
(posicio.y * CARD_HEIGHT) + 10,
CARD_WIDTH,
CARD_HEIGHT,
CORNER_ANGLE,
CORNER_ANGLE);
g2d.setColor(Color.WHITE);
g2d.fill(rect2);
g2d.setColor(Color.black);
g2d.draw(rect2);
BufferedImage imatge = null;
if (caraAmunt) {
try {
imatge = ImageIO.read(new File(cami));
} catch (IOException ex) {
Logger.getLogger(Carta.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
imatge = ImageIO.read(new File(camiDefecte));
} catch (IOException ex) {
Logger.getLogger(Carta.class.getName()).log(Level.SEVERE, null, ex);
}
}
g.drawImage(imatge.getScaledInstance(CARD_WIDTH, CARD_HEIGHT, Image.SCALE_SMOOTH),
posicio.x + CARD_WIDTH + 20,
(posicio.y * CARD_HEIGHT) + 10,
null);
}
我遇到的问题是试图在JPanel
上绘制它。 这是一个更大的 GUI 的一部分,其中包含一个带有这些卡片的JPanel
。 当我将它们添加到JPanel
时,我在屏幕上什么也看不到。 我正在实例化一个JFrame
,其中有一个JPanel
,我将每张卡片都添加到该 JPanel 中。 我怎样才能在这个JPanel
内绘制它们,比如JPanel foo
?
示例代码
Carta foo = new Carta(SPADES, ACE, new Point(0, 0), true);
this.add(foo);
我已经解决了这个问题。 我在课堂上画画,这没有任何意义。 感谢您的回复:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.