2

私の問題はこれです:

(ゲーム: 三目並べを表示する) 9 つのラベルを含むフレームを表示します。ラベルには、Xのイメージ アイコンまたはOのイメージ アイコンが表示される場合があります。何を表示するかはランダムに決定されます。Math.random()メソッドを使用して、 XまたはO画像アイコンの表示に対応する整数0または1を生成します。これらの画像は、ファイルx.gifおよびo.gifにあります。

私が抱えている問題は、画像がプログラムに表示されないという事実です。実行すると、プログラムは空のフレームを生成します。私の推測では、画像ファイルの場所に問題があるに違いありません。

画像に含まれていると思われる本の出版社から.zipをダウンロードしました(LiangによるJavaプログラミングの紹介)。しかし、そうではありませんでした。それで、同じ.gifをオンラインで見つけてダウンロードしました。今、私はどのように正しい場所を設定したのか疑問に思っています。

コード自体は問題ないと思います。とにかくここです。

import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class TicTacToe extends JFrame {
private ImageIcon cross = new ImageIcon("image/x.gif");
private ImageIcon not = new ImageIcon("image/o.gif");

public TicTacToe() {
    setLayout(new GridLayout(3, 3));

    for (int i = 0; i < 9; i++) {
        int mode = (int) (Math.random() * 3.0);
        if (mode == 0)
            add(new JLabel(this.cross));
        else if (mode == 1)
            add(new JLabel(this.not));
        else
            add(new JLabel());
    }
}

public static void main(String[] args) {
    TicTacToe frame = new TicTacToe();
    frame.setTitle("TicTacToe");
    frame.setSize(200, 200);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(3);
    frame.setVisible(true);
  }
}

別の小さな質問は、これを使用します:

import java.awt.*;
import javax.swing.*;

これの代わりに:

import java.awt.GridLayout;
import javax.swing.ImageIcon;

悪いことになる?私の講師が、必要なものを個別にインポートするのではなく、常にすべてをインポートするのが面倒だと思うかどうか考えています。

事前に - ありがとう。

4

2 に答える 2

0

アイコン ファイルは、'images' という名前のフォルダーにある必要があり、そのフォルダーは、プログラムを実行する既定のディレクトリにある必要があります。

于 2013-11-10T15:02:00.973 に答える