繁体   English   中英

无法使 JPanel 组件显示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM