0

OK、最初に言いたいのは、はい、Java で背景画像を設定することに関して、似たような質問がたくさんあることを知っています。しかし、他の誰かによって開始された Java プロジェクトを渡されたので、私の状況は少し異なります。以前のプログラマーは Java GUI プログラミングにかなり慣れていなかったと思いますし、私自身も Java GUI プログラミングに非常に慣れていません。プログラムが実行する必要があるのは次のとおりです。

  • クライアントのネットワーク マップである背景画像を設定します
  • URL によって取得されるそれぞれのクライアントに帯域幅マップを配置します。
  • 約 5 秒ごとに帯域幅グラフを更新する

前のプログラマーが行った唯一のことは、2 つのクラスをセットアップすることでした。

ここで、MigLayout を使用して、帯域幅の画像を正しい配置で配置するグリッドを整理することにしました。私はそれがうまくいかなかったので、もう少し小さいものから始めて、サルの背景をネットワーク マップに変更することにしました。src ライブラリにマップ jpg を追加し、URL を File に切り替えればうまくいくと思いました。そうではなく、私はそれを機能させるために物事を切り替えようとして立ち往生していましたが、葉巻はありませんでした.

以下は、背景を設定するためのコードです。コードを投稿するのはこれが初めてです。うまくいくことを願っています:...まあ、いくつかの方法を何度か試して、何度かグーグル検索しましたが、コードを投稿してもうまくいかないので、スクリーンショットを撮りました。今日は何もうまくいきません。ここに画像の説明を入力

私が得るエラーは次のとおりです。

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at bwMonBackground.<init>(bwMonBackground.java:21)
    at bwMonBackgroundMain.main(bwMonBackgroundMain.java:7)

編集: 18 行目のコメントを外しました。メインは次のとおりです。

public class bwMonBackgroundMain extends bwMonBackground{
      public static void main( String[] args )
        {
            bwMonBackground frame = new bwMonBackground();
            migLayout testing = new migLayout();
            testing.createLayout();
            frame.setVisible(true);
            frame.setResizable(false);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();

        }
}

編集 2: bwMonBackground.java の 18 行目のコメントを外すと、次のエラーが発生します。

javax.imageio.IIOException: Can't read input file!
    at javax.imageio.ImageIO.read(Unknown Source)
    at bwMonBackground.<init>(bwMonBackground.java:15)
    at bwMonBackgroundMain.main(bwMonBackgroundMain.java:7)
Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at bwMonBackground.<init>(bwMonBackground.java:20)
    at bwMonBackgroundMain.main(bwMonBackgroundMain.java:7)
4

4 に答える 4

1

IOException があり、catch で何もしないに違いありません。それが image が null である理由です。また、アイコン付きの JLabel は実際には背景画像ではなく、そのアイコンであり、要素を配置することはできません。したがって、これを読む必要があります: java swing background image

コードサンプル付きのかなり良い回答が含まれています.URLを有効な画像に変更して起動するだけです.

于 2012-08-07T19:57:58.220 に答える
0

bwMonBackgroundMain.java のソースを表示できますか? 現在、ラベルに追加しようとしている画像ファイルが見つからないようです

于 2012-08-07T19:58:43.720 に答える
0

スタック トレースがコメント アウトされているため、IOException がスローされているかどうかを確認できません。ファイルを読み取ろうとすると、IO 例外がスローされていると思います。スタック トレースを印刷して、そこから解決してみてください。

于 2012-08-07T20:00:04.630 に答える