簡體   English   中英

在Java中設置背景圖片

[英]setting background image in Java

好的,我想說的第一件事是:是的,我知道在Java中設置背景圖像有很多類似的問題。 但是,由於我得到了別人啟動的Java項目,因此情況有所不同。 我相信以前的程序員對於Java GUI編程來說是相當陌生的,而我本人對Java GUI編程也陌生。 該程序必須執行以下操作:

  • 設置背景圖像,該圖像是我們客戶的網絡地圖
  • 將帶寬映射放置到通過URL獲取的各個客戶端
  • 每5秒鍾刷新一次帶寬圖

以前的程序員所做的唯一一件事是設置了兩個類,一個是主類,另一個是設置了他作為url中的猴子的背景圖像。

現在,我決定使用MigLayout組織一個網格,在該網格中我將以正確的方式放置帶寬圖像。 我遇到了麻煩,因此我決定從小一點開始,將猴子背景更改為網絡地圖。 我將地圖jpg添加到src庫中,並認為如果將URL切換為File,它將可以工作。 它沒有,我一直被困在試圖改變周圍的東西以使其正常工作,但沒有雪茄。

下面是設置背景的代碼。 這是我第一次嘗試發布代碼,我希望它能起作用:...好吧,我嘗試了幾種方式,並在Google上進行了幾次搜索,但是發布代碼無效,因此我進行了截屏。 今天什么都沒有為我工作。 在此處輸入圖片說明

我得到的錯誤是:

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)

基本上,錯誤是指找不到文件(您正在指定對ImageIcon構造函數的null引用)。 確保它存在於應用程序執行上下文的根目錄中。

現在,解決您的實際問題。

您將需要設置一個自定義Component (例如JPanel )並覆蓋paintComponent方法。

看一眼

您可能還想看看

我敢打賭,您有IOException,而且您什么也沒做,這就是為什么image為null的原因。 而且帶有圖標的JLabel並不是真正的背景圖像,它是圖標,您不能在其中放置元素。 因此,您需要閱讀以下內容: java swing背景圖像

它包含了很好的代碼示例答案,只需將URL更改為有效圖像並啟動即可。

您可以顯示bwMonBackgroundMain.java的源代碼嗎? 現在看起來好像找不到要添加到標簽的圖像文件

拋出IOException,您無法查看是否是因為堆棧跟蹤已被注釋掉。 我認為嘗試讀取文件時會拋出IO異常。 嘗試打印堆棧跟蹤,然后從那里解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM