0

好的,我想说的第一件事是:是的,我知道在 java 中设置背景图像有很多类似的问题。然而,我的情况有点不同,因为我接到了一个由其他人启动的 Java 项目。我相信以前的程序员对 Java GUI 编程相当陌生,而我自己对 Java GUI 编程也陌生。以下是该程序必须执行的操作:

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

前一个程序员所做的唯一一件事就是设置了 2 个类,一个是主类,一个是从 url 设置他作为猴子的背景图像

现在,我决定使用 MigLayout 来组织一个网格,我将在其中以正确的排列方式放置带宽图像。我遇到了麻烦,所以我决定从小一点开始,将猴子背景更改为网络地图。我将地图 jpg 添加到 src 库中,并认为如果我将 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

2

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

现在,到你的实际问题。

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

看一眼

你可能还想看看

于 2012-08-07T20:07:54.317 回答
1

我敢打赌你有 IOException 并且你什么都不做,这就是为什么 image 为空。而带图标的 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 回答