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