在Java中设置背景图像

时间:2012-08-07 19:50:49

标签: java swing background-image miglayout

好的,首先我要说的是:是的,我知道在java中设置背景图片有很多类似的问题。但是,由于我获得了由其他人启动的Java项目,因此我的情况有所不同。我相信以前的程序员对Java GUI编程来说还是一个新手,而且我自己是非常 Java GUI编程的新手。以下是该计划必须要做的事情:

  • 设置背景图片,这是我们客户的网络地图
  • 将带宽地图放置到由网址
  • 获取的各个客户端
  • 每5秒左右刷新一次带宽图

以前程序员唯一做的就是设置2个类,一个是主要的,一个是设置背景图像,他从一个网址中作为一个猴子

现在,我决定使用MigLayout组织一个网格,我将把带宽图像放置在正确的排列中。我遇到了麻烦所以我决定开始做一点小,然后将猴子背景改为网络地图。我将地图jpg添加到src库中,并认为如果我将URL切换到File,它将起作用。它没有,我一直在试图改变它以使它工作,但没有雪茄。

以下是设置背景的代码。这是我第一次尝试发布代码我希望它能够正常工作:...好吧我曾多次试过几次并用谷歌搜索了几次,但发布我的代码并没有工作,所以我拍了一个屏幕截图。今天没有什么对我有用。 enter image description here

我得到的错误是:

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 个答案:

答案 0 :(得分:2)

基本上,错误是说无法找到文件(您指定null构造函数的ImageIcon引用)。确保它存在于应用程序执行上下文的根位置。

现在,针对您的实际问题。

您需要设置自定义Component(例如JPanel)并覆盖paintComponent方法

看看

您可能还想查看

答案 1 :(得分:1)

我敢打赌你有IOException并且你只是在catch中什么都不做,这就是为什么image为null。带图标的JLabel并不是真正的背景图片,它的图标和你不能放置元素。所以你需要阅读: java swing background image

它包含代码示例的非常好的答案,只需将URL更改为有效图像并启动。

答案 2 :(得分:0)

你能展示一下bwMonBackgroundMain.java的来源吗?现在它看起来好像找不到你想要添加到标签的图像文件

答案 3 :(得分:0)

正在抛出IOException并且您无法查看是否因为堆栈跟踪被注释掉了。我假设在尝试读取文件时抛出了IO异常。尝试打印堆栈跟踪,然后从那里解决它。