1

コードを実行すると、空のウィンドウが開くだけです。必要なものは何でも重要です

コードの関連部分:

public class Game extends JFrame implements ActionListener,KeyListener{
    private JLabel background; 
....  
public Game(){
background=new JLabel(new ImageIcon("/graphics/board.gif"));
...
this.add(background);
this.setSize(800,600);
this.setVisible(true);...

JLabel を JPanel に追加してからフレームに追加しようとしましたが、ウィンドウにはまだ何も表示されません

4

3 に答える 3

2

もともとのコードは次のとおりです。

JLabel background = new JLabel("/graphics/board.gif");

これでは、説明されているパスに画像が設定されません。次の方法を使用することをお勧めします (別の JLabel コンストラクターを使用するように簡略化できますが、わかりやすくするために手順を示します)。

画像を作成してロードし、次のようにラベルのアイコンを設定します

ImageIcon icon = new ImageIcon("/graphics/board.gif"); 
JLabel background = new JLabel();
background.setIcon(icon);

ImageIcon Java Doc へのリンク

于 2013-06-23T20:46:56.663 に答える
0

要素が表示される順序をレイアウトで設定することが重要です。おそらく、ラベルの上に表示されるものがあります..

于 2013-06-23T20:41:51.697 に答える
0

次のようなディレクトリ構造があると思います。

-c:\java  
  - source (ソースおよびクラス ファイル用)  
    - グラフィック(画像用)
background=new JLabel(new ImageIcon("/graphics/board.gif"));

ファイル名の先頭の「/」を指定しないでください。これにより、クラスが実行されているディレクトリではなく、C ドライブのルートを参照するように Java に指示されます。

また、使用しないでください:

this.setSize(800,600);

画像は、フレームのサイズに合わせて引き伸ばされません。あなたが使用しているはずです:

this.pack();

フレームは画像のサイズになります。

于 2013-06-23T22:55:22.733 に答える