2014-04-24 25 views
0

對於我的學期結束項目,我必須在java上做一個單人克朗代克遊戲。關於Java的紙牌克朗代克

到目前爲止,我已經制作了一個名爲Card的類,具有所有的屬性。我也做了一個jFrame。它有一張ArrayList的卡片,我已經按照隨機順序放入了卡片,並將它們分成了其他7個卡片。

問題是在繪製卡片的時刻,只有一個卡片有一張卡片在另一卡片下可見。對於休息甲板,我似乎無法實現它。另外,我不能把卡朝下。

這是我的代碼和圖形界面的圖像。

GUI代碼

package solitario; 

import java.util.ArrayList; 
import java.util.Collections; 
import java.awt.*; 

/** 
* 
* @author Andres 
*/ 
public class Applet extends javax.swing.JApplet { 
//Creo el ArrayList del mazo principal 

    private ArrayList<Carta> mazoPrincipal; 
    private ArrayList<Carta> mazoUno; 
    private ArrayList<Carta> mazoDos; 
    private ArrayList<Carta> mazoTres; 
    private ArrayList<Carta> mazoCuatro; 
    private ArrayList<Carta> mazoCinco; 
    private ArrayList<Carta> mazoSeis; 
    private ArrayList<Carta> mazoSiete; 

    /** 
    * Initializes the applet Applet 
    */ 
    @Override 
    public void init() { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(Applet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(Applet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(Applet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(Applet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the applet */ 
     try { 
      java.awt.EventQueue.invokeAndWait(new Runnable() { 
       public void run() { 
        initComponents(); 
        mazoPrincipal = new ArrayList<Carta>(); 
        //Agrego Tréboles 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 1, "/imagenes/treboles/1.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 2, "/imagenes/treboles/49.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 3, "/imagenes/treboles/45.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 4, "/imagenes/treboles/41.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 5, "/imagenes/treboles/37.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 6, "/imagenes/treboles/33.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 7, "/imagenes/treboles/29.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 8, "/imagenes/treboles/25.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 9, "/imagenes/treboles/21.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 10, "/imagenes/treboles/17.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 11, "/imagenes/treboles/13.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 12, "/imagenes/treboles/9.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Trebol", 13, "/imagenes/treboles/5.png")); 

        //Agrego Picas 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 1, "/imagenes/picas/2.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 2, "/imagenes/picas/50.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 3, "/imagenes/picas/46.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 4, "/imagenes/picas/42.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 5, "/imagenes/picas/38.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 6, "/imagenes/picas/34.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 7, "/imagenes/picas/30.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 8, "/imagenes/picas/26.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 9, "/imagenes/picas/22.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 10, "/imagenes/picas/18.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 11, "/imagenes/picas/14.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 12, "/imagenes/picas/10.png")); 
        mazoPrincipal.add(new Carta("Negro", false, "Picas", 13, "/imagenes/picas/6.png")); 

        //Agrego Corazones 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 1, "/imagenes/corazones/3.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 2, "/imagenes/corazones/51.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 3, "/imagenes/corazones/47.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 4, "/imagenes/corazones/43.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 5, "/imagenes/corazones/39.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 6, "/imagenes/corazones/35.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 7, "/imagenes/corazones/31.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 8, "/imagenes/corazones/27.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 9, "/imagenes/corazones/23.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 10, "/imagenes/corazones/19.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 11, "/imagenes/corazones/15.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 12, "/imagenes/corazones/11.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Corazones", 13, "/imagenes/corazones/7.png")); 

        //Agrego Diamantes 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 1, "/imagenes/diamantes/4.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 2, "/imagenes/diamantes/52.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 3, "/imagenes/diamantes/48.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 4, "/imagenes/diamantes/44.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 5, "/imagenes/diamantes/40.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 6, "/imagenes/diamantes/36.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 7, "/imagenes/diamantes/32.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 8, "/imagenes/diamantes/28.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 9, "/imagenes/diamantes/24.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 10, "/imagenes/diamantes/20.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 11, "/imagenes/diamantes/16.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 12, "/imagenes/diamantes/12.png")); 
        mazoPrincipal.add(new Carta("Rojo", false, "Diamantes", 13, "/imagenes/diamantes/8.png")); 

        //Inicializa mazos 
        mazoUno = new ArrayList<Carta>(); 
        mazoDos = new ArrayList<Carta>(); 
        mazoTres = new ArrayList<Carta>(); 
        mazoCuatro = new ArrayList<Carta>(); 
        mazoCinco = new ArrayList<Carta>(); 
        mazoSeis = new ArrayList<Carta>(); 
        mazoSiete = new ArrayList<Carta>(); 
        //Desordena mazo 
        Collections.shuffle(mazoPrincipal); 
        repartir(); 

//     pinta(); 
       } 
      }); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 

    /** 
    * This method is called from within the init() method to initialize the 
    * form. WARNING: Do NOT modify this code. The content of this method is 
    * always regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jPanel1 = new javax.swing.JPanel(); 
     labelMazo = new javax.swing.JLabel(); 
     panelMazoDos = new javax.swing.JPanel(); 
     panelMazoUno = new javax.swing.JPanel(); 
     panelMazoTres = new javax.swing.JPanel(); 
     panelMazoCuatro = new javax.swing.JPanel(); 
     panelMazoCinco = new javax.swing.JPanel(); 
     panelMazoSeis = new javax.swing.JPanel(); 
     panelMazoSiete = new javax.swing.JPanel(); 

     getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

     jPanel1.setBackground(new java.awt.Color(0, 153, 0)); 
     jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

     labelMazo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagenes/b1fv.png"))); // NOI18N 
     labelMazo.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseClicked(java.awt.event.MouseEvent evt) { 
       labelMazoMouseClicked(evt); 
      } 
     }); 
     jPanel1.add(labelMazo, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, 71, 96)); 

     panelMazoDos.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoDos.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoDos.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoDos, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 180, 70, 160)); 

     panelMazoUno.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoUno.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoUno.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoUno, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 180, 70, 160)); 

     panelMazoTres.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoTres.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoTres.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoTres, new org.netbeans.lib.awtextra.AbsoluteConstraints(200, 180, 70, 160)); 

     panelMazoCuatro.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoCuatro.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoCuatro.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoCuatro, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 180, 70, 160)); 

     panelMazoCinco.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoCinco.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoCinco.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoCinco, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 180, 70, 160)); 

     panelMazoSeis.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoSeis.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoSeis.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoSeis, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 180, 70, 160)); 

     panelMazoSiete.setBackground(new java.awt.Color(0, 153, 0)); 
     panelMazoSiete.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
     panelMazoSiete.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 
     jPanel1.add(panelMazoSiete, new org.netbeans.lib.awtextra.AbsoluteConstraints(580, 180, 70, 160)); 

     getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 680, 470)); 
    }// </editor-fold>       

    private void labelMazoMouseClicked(java.awt.event.MouseEvent evt) {          
     // TODO add your handling code here: 


    }          

    // Variables declaration - do not modify      
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JLabel labelMazo; 
    private javax.swing.JPanel panelMazoCinco; 
    private javax.swing.JPanel panelMazoCuatro; 
    private javax.swing.JPanel panelMazoDos; 
    private javax.swing.JPanel panelMazoSeis; 
    private javax.swing.JPanel panelMazoSiete; 
    private javax.swing.JPanel panelMazoTres; 
    private javax.swing.JPanel panelMazoUno; 
    // End of variables declaration     

    public void repartir() { 
     //Agrega cartas a los demás mazos 
     for (int i = 0; i < mazoPrincipal.size(); i++) { 
      if (i == 0) { 

       mazoUno.add(mazoPrincipal.get(i)); 

      } 
      if (i >= 1 && i < 3) { 

       mazoDos.add(mazoPrincipal.get(i)); 

      } 

      if (i >= 3 && i < 6) { 
       mazoTres.add(mazoPrincipal.get(i)); 
      } 

      if (i >= 6 && i < 10) { 
       mazoCuatro.add(mazoPrincipal.get(i)); 
      } 

      if (i >= 10 && i < 15) { 
       mazoCinco.add(mazoPrincipal.get(i)); 
      } 

      if (i >= 15 && i < 21) { 
       mazoSeis.add(mazoPrincipal.get(i)); 
      } 

      if (i >= 21 && i < 28) { 
       mazoSiete.add(mazoPrincipal.get(i)); 
      } 
     }//Fin For 
     //Pinta la carta en el mazo correspondiente. 

     int i = -1; 
     for (Carta c : mazoUno) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoUno.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1)); 
     } 

     for (Carta c : mazoDos) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoDos.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1)); 
      i += 15; 
     } 

     for (Carta c : mazoTres) { 

      c.setBounds(0, i, 50, 100); 
      panelMazoTres.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, 0, -1, -1)); 
      i += 15; 
     } 
     for (Carta c : mazoCuatro) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoCuatro.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1)); 
      i += 15; 
     } 

     for (Carta c : mazoCinco) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoCinco.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1)); 
      i += 15; 
     } 

     for (Carta c : mazoSeis) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoSeis.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, i, -1)); 
      i += 15; 
      i++; 
     } 
     for (Carta c : mazoSiete) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoSiete.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1)); 
      i += 15; 

     } 

    } 

}//Fin método repartir 

卡類

package solitario; 
import javax.swing.JLabel; 
/** 
* 
* @author $Andrés Avila Wille 
*/ 
public class Carta extends JLabel{ 
    private String color; 
    private boolean con; 
    private String escudo; 
    private int num; 

    public Carta(){ 
    } 

    public Carta(String color, boolean con, String escudo, int num, String URL) { 
     this.color = color; 
     this.con = con; 
     this.escudo = escudo; 
     this.num = num; 
     this.setIcon(new javax.swing.ImageIcon(getClass().getResource(URL))); 
    } 

    public String getColor() { 
     return color; 
    } 

    public void setColor(String color) { 
     this.color = color; 
    } 

    public boolean isCon() { 
     return con; 
    } 

    public void setCon(boolean con) { 
     this.con = con; 
    } 

    public String getEscudo() { 
     return escudo; 
    } 

    public void setEscudo(String escudo) { 
     this.escudo = escudo; 
    } 

    public int getNum() { 
     return num; 
    } 

    public void setNum(int num) { 
     this.num = num; 
    } 

    public void vuelta(boolean con){ 
     if(con == true){ 
      this.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/b1fv.png"))); 
     } 
    } 



} 

GUI圖片

GUI Image

+0

這可能是一個Z排序問題,請考慮看看'JLayeredPane' ... – MadProgrammer

+0

我有,但我似乎無法應用於此。 –

回答

1

首選解決方案是使用JLayeredPane,因爲它提供了對組件的z排序更好的控制,做不到這一點,您可以通過使用Container#add(Component, Object, int)

所以假到一定程度,基本上,只要添加一個卡在UI,你需要做這樣的事情......

panelMazoUno.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1), 0); 

採用了Z順序修正...

without

使用z階校正...

With

這是通過簡單地使用完成...

for (Carta c : mazoUno) { 
    c.setBounds(0, i, 50, 100); 
    panelMazoUno.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1), 0); 
} 

for (Carta c : mazoDos) { 
    c.setBounds(0, i, 50, 100); 
    panelMazoDos.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
    i += 15; 
} 

for (Carta c : mazoTres) { 

    c.setBounds(0, i, 50, 100); 
    panelMazoTres.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, 0, -1, -1), 0); 
    i += 15; 
} 
for (Carta c : mazoCuatro) { 
    c.setBounds(0, i, 50, 100); 
    panelMazoCuatro.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1), 0); 
    i += 15; 
} 

for (Carta c : mazoCinco) { 
    c.setBounds(0, i, 50, 100); 
    panelMazoCinco.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1), 0); 
    i += 15; 
} 

for (Carta c : mazoSeis) { 
    c.setBounds(0, i, 50, 100); 
    panelMazoSeis.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, i, -1), 0); 
    i += 15; 
    i++; 
} 
for (Carta c : mazoSiete) { 
    c.setBounds(0, i, 50, 100); 
    panelMazoSiete.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1), 0); 
    i += 15; 

} 
+0

我會試着對'JLayeredPane'做更多的研究。我也會嘗試添加0到添加。 –

+0

不,0在panelUno.add的末尾不起作用。 –

+0

@AndrésAvilaWille然後,你必須做其他事情,因爲它的作品,看到更新... – MadProgrammer

0

幾個小時的測試後,我來解決這個問題。出錯的是每個For Each迭代都有相同的i索引。所以,我創建了一個爲每個套牌初始化一個不同的i索引。另外,我用我的索引將其值設置在c.setBounds()AbsoluteConstraints() Y位置這是我的代碼:

for (Carta c : mazoUno) { 
     int i = 0; 
     c.setBounds(0, i, 50, 100); 
     panelMazoUno.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, -1, -1, -1), 0); 


    } 

    for (int i = 0; i < mazoDos.size();) { 
     for (Carta c : mazoDos) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoDos.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
      i += 15; 

     } 
    } 

    for (int i = 0; i < mazoTres.size();) { 
     for (Carta c : mazoTres) { 

      c.setBounds(0, i, 50, 100); 
      panelMazoTres.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
      i += 15; 
     } 
    } 

    for (int i = 0; i < mazoCuatro.size();) { 
     for (Carta c : mazoCuatro) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoCuatro.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
      i += 15; 
     } 
    } 

    for (int i = 0; i < mazoCinco.size();) { 
     for (Carta c : mazoCinco) { 

      c.setBounds(0, i, 50, 100); 
      panelMazoCinco.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
      i += 15; 
     } 
    } 

    for (int i = 0; i < mazoSeis.size();) { 
     for (Carta c : mazoSeis) { 
      c.setBounds(0, i, 50, 100); 
      panelMazoSeis.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
      i += 15; 

     } 
    } 


    for (int i = 0; i < mazoSiete.size();) { 
     for (Carta c : mazoSiete) { 

      c.setBounds(0, i, 50, 100); 
      panelMazoSiete.add(c, new org.netbeans.lib.awtextra.AbsoluteConstraints(-1, i, -1, -1), 0); 
      i += 15; 

     } 
    } 

它看起來是這樣的: