繁体   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