Java 将数组传递给小程序中的另一个方法

Java 将数组传递给小程序中的另一个方法,java,methods,applet,Java,Methods,Applet,所以我正在写一个程序,随机在一副牌中挑选10张牌并显示它们。但是,我不知道如何将用于存储随机卡片的数组传递给打印卡片的方法。这是我的代码: import java.awt.Graphics; import java.awt.Color; import java.awt.Image; import java.applet.Applet; import java.lang.Math; import java.util.Random; public class unit12Assignment ex

所以我正在写一个程序,随机在一副牌中挑选10张牌并显示它们。但是,我不知道如何将用于存储随机卡片的数组传递给打印卡片的方法。这是我的代码:

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Image;
import java.applet.Applet;
import java.lang.Math;
import java.util.Random;

public class unit12Assignment extends Applet
{
    Image card1 ... card52;

public void init()
{
    card1 = getImage( getDocumentBase(), "c1.gif" );
        ...
    card52 = getImage( getDocumentBase(), "sk.gif" );
}

public void getCards(String[] cardSelection)
{
    String cardNumber; 
    double cardRandom;
    int cardRandomNumber;
    Random ran = new Random();
            cardSelection = new String[10]

    for (int number = 0; number <=  9; )
    {
        cardRandom = ran.nextInt(52) + 1;
        cardRandomNumber = (int) Math.round( cardRandom );

        if ( cardRandomNumber > 0 && cardRandomNumber <= 52 )
        { 
            cardNumber =  "card" + cardRandomNumber;
            number++;
        }
    }   
}

    // i wanna pass it to this method
public void paint(Graphics g)
{
    setBackground( Color.green );
    g.drawImage( cardSelection[0], 10, 10, this);
    g.drawImage( cardSelection[1], 90, 10, this);
    g.drawImage( cardSelection[2], 170, 10, this);
    g.drawImage( cardSelection[3], 250, 10, this);
}
导入java.awt.Graphics;
导入java.awt.Color;
导入java.awt.Image;
导入java.applet.applet;
导入java.lang.Math;
导入java.util.Random;
公共类Unit12分配扩展小程序
{
图像卡1…卡52;
公共void init()
{
card1=getImage(getDocumentBase(),“c1.gif”);
...
card52=getImage(getDocumentBase(),“sk.gif”);
}
公共作废getCards(字符串[]cardSelection)
{
字符串卡号;
双随机;
整数;
Random ran=新的Random();
cardSelection=新字符串[10]

对于(int number=0;number 0&&cardRandomNumber,您需要使
paint
方法接受
String[]
。然后您可以在调用
paint
时传入数组

例如:

public void main(String[] args) {
  String[] myArray = makeArray();
  printArray(myArray);
}   

public String[] makeArray() {
  return new String[] {"element0", "element1", "element2"};
}   

public void printArray(String[] array) {
  for (String element : array) {
    System.out.println(element);
  }   
}

String[]cardSelection;
声明为实例变量(类声明旁边)

然后,在getCards()方法中实例化数组:

cardSelection = new String[10];

将cardSelection设置为全局变量,以便所有方法都可以访问它。您的意思是将
cardSelection
声明为类级字段吗?这样做了,但paint方法仍然找不到它paint方法在开始时找不到它,因为它可能在getCards()之前被调用。因此,在paint方法中使用它之前,您必须检查它是否不为null。一旦getCards()实例化它,它将可用于绘制。我非常确定getCards()方法在paint()方法之前启动。我用我所做的更改更新了问题。您介意看一下吗?谢谢您的更改是错误的。只需放置字符串[]图像card1…card52旁边的cardSelection;(不管这是什么意思,因为它看起来不像Java)