1

私が取り組んでいるプロジェクトのために、ビンゴカードを作りました。基本的な機能は、カードがランダムに生成され、STD 出力と、私が手動で作成した Swing GUI で表示されることです。このアプリケーションには、複数の Java ファイルが含まれています。

BingoFinal.java - メイン ファイル。これは、プログラムの実行時に実行されるものです。Bingo_Card.java - ビンゴ カードを作成し、STD に出力し、ビンゴをチェックします。 BingoBG.java - GUI の背景を 2D グラフィックスで描画します。 DrawBingoCard.java - BingoBG を呼び出し、ボードの値を含む 25 個のラベルも作成します。Bingo_Card が一致する数字 (STD IN で入力) を見つけると、数字を出力しなくなり、Chip.png (Java ファイルと同じパッケージ フォルダーにあります)、ビンゴ チップの画像を出力して、覆われたように見せます。

これは、NetBeans で実行すると問題なく動作しますが、クリーンアップしてビルドし、ターミナルで jar を実行すると、ビンゴ チップ イメージの表示以外はすべて動作します。なぜそれが起こるのか誰か知っていますか?

編集:これが私が画像をロードする方法です

ImageIcon chip; //declare ImageIcon
chip = new ImageIcon("chip75.png"); //define it as chip75.png. It is stored in package folder
JLabel B1Chip; //declare empty Label
B1Chip = new JLabel(chip); //define the Label with just the ImageIcon
B1Chip.setBounds(22, 112, chip.getIconWidth(), chip.getIconHeight()); //place at (22,112)
frame.add(B1Chip, null); //Add to frame
4

2 に答える 2

3

images次を使用して、にアクセスする必要があります。

ImageIcon chip = new ImageIcon(ClassName.class.getResource("/chip75.png"))

詳細については、タグの情報ページを参照してください: embedded-resourceプロジェクトimagesへの追加に関する詳細な回答は、リンクに記載されています。NetBeansinfo-page

さらに重要なことに、 ImageIO.read を使用することが賢明ですIOException

Throws:

IllegalArgumentException - if input is null.
IOException - if an error occurs during reading.

ImageIcon一方、exceptionもしあれば非表示にします:-)

于 2013-08-29T09:23:53.987 に答える
0

画像ファイルを jar にコピーするか、画像ファイルの絶対パスを指定します

于 2013-08-29T08:52:11.543 に答える