如何将图像的一部分添加到ArrayList - Java

时间:2014-11-20 19:09:04

标签: java arraylist 2d

对于家庭作业,我正在尝试将精灵表添加到2D ArrayList中以进行简单的纸牌游戏。我希望能够像普通的2D阵列一样只使用数组列表的动态能力,因为我必须删除已经绘制的卡片。

我正在使用一个数字生成器,它将在第一个和最后一个索引(0 - 51)之间生成数字,当用户单击绘图卡按钮时,它将在屏幕上显示一张卡片。然后它将允许另一个用户或AI绘制一张牌,它将确定谁拥有最高牌并宣布该人是该轮的赢家,移除两张抽牌并重复循环直到超过26圈然后程序将计算全部胜利,获得最多回合的玩家将赢得整场胜利。

我的问题是:如何将我的一个精灵表分成52个部分并将其添加到我的ArrayList中?

这是我到目前为止所拥有的。我知道它还没有用,但我不确定我是否走在正确的轨道上。

//private ImageIcon[][] cards = new ImageIcon[4][13];
private BufferedImage img;  
private final int _WIDTH = 74;
private final int _HEIGHT = 94;

public CardGame1(ImageIcon[][] cards){
    try{
        img = ImageIO.read(getClass().getResource(
                "classic-playing-cards.png"));
    }catch(Exception e){
        e.printStackTrace();
    }

    for(int r = 0; r < cards.length; r++){
        for(int c = 0; c < cards[r].length; c++){
            cards[r][c] = new ImageIcon(img.getSubimage(c * _WIDTH, 
                    r * _HEIGHT, _WIDTH, _HEIGHT));
        }
    }

}

有人告诉我将ArrayList放在另一个类中,所以这里是:

private JFrame frame;
private JPanel panel;
private Random rand;
private JButton drawCard;
private JLabel card;
private ArrayList<ArrayList<CardGame1>> _cardObj 
= new ArrayList<ArrayList<CardGame1>>();

public CardGameGUI(){
    gameBoard();
}

public void gameBoard(){
    frame = new JFrame("Card Game");
    panel = new JPanel();
    frame.setSize(600, 500);
    frame.setLayout(new GridLayout());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(true);
    frame.setVisible(true);
    frame.add(panel);
    panel.setBackground(Color.GREEN);

    drawCard = new JButton("Draw Card!");
    drawCard.setSize(100, 50);
    panel.add(drawCard);
    drawCard.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent arg0) {

        }
    });
}