0

ランダムに 10 枚のカードを選んで画面に表示するアプレットを作成しています。ただし、.class エラーと ; が表示されます。String[] を渡そうとすると、必要なエラーが発生しました。誰か助けて?これは私のコードです:

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 cardNumber; 
    double cardRandom;
    int cardRandomNumber;
    String[] cardSelection = new String[10];
    Random ran = new Random();

    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++;
        }
    }   
    paint( String[] cardSelection );
}

public void paint(Graphics g, String[] card)
{
    setBackground( Color.green );
    g.drawImage( card[0], 10, 10, this);
    g.drawImage( card[1], 90, 10, this);
    g.drawImage( card[2], 170, 10, this);
    g.drawImage( card[3], 250, 10, this);
}

}

4

2 に答える 2

1

関与するgetGraphics()ものはすべて脆弱なソリューションです。

ユーザーが別の別のアプリをドラッグした場合。ブラウザ上でアプレットを覆い、他のアプリを最小化すると、カスタムペイントされたピクセルが消去される可能性があります。正しくペイントする方法については、カスタム ペイントの実行を参照してください (これは、「指示されたときにペイントする」に分類されます)。

BufferedImage別の方法は、レンダリングにを使用し、で表示することJLabelです。必要に応じて画像にペイントしてから、ラベルを再ペイントします。

于 2012-09-08T01:52:57.313 に答える