【问题标题】:JLabel Icon not shownJLabel 图标未显示
【发布时间】:2012-11-20 23:43:58
【问题描述】:

我正在尝试在我的应用程序中显示图像...

    picture = new JLabel("No file selected");
    picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
    picture.setHorizontalAlignment(JLabel.CENTER);

    scrollPane.setViewportView(picture);

    ImageIcon icon = new ImageIcon("map.jpg");
    picture.setIcon(icon);
    if (picture.getIcon() != null)                   // to see if the label picture has Icon
        picture.setText("HERE IS ICON");

当我运行该代码时,只显示“这里是图标”文本。 对不起,如果这个问题听起来很愚蠢,但我真的不知道为什么不显示图像图标:(

【问题讨论】:

    标签: java icons jlabel


    【解决方案1】:

    您需要确保 map.jpg 作为文件存在。如果您想确定(仅用于测试目的),请尝试使用完整路径。你有它的方式,路径是相对于应用程序的启动目录的。

    你可以用这个仔细检查它是否存在:

    System.out.println(new java.io.File("map.jpg").exists());
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      ImageIcon icon = createImageIcon("map.jpg", "My ImageIcon");
      
      if (icon != null) {
          JLabel picture = new JLabel("HERE IS ICON", icon, JLabel.CENTER);
          picture.setFont(picture.getFont().deriveFont(Font.ITALIC));
          picture.setHorizontalAlignment(JLabel.CENTER);
      
          scrollPane.setViewportView(picture);
      }
      

      createImageIcon 方法(在前面的 sn-p 中使用)找到指定的文件并返回该文件的 ImageIcon,如果找不到该文件,则返回 null。这是一个典型的实现:

      /** Returns an ImageIcon, or null if the path was invalid. */
      protected ImageIcon createImageIcon(String path,
                                                 String description) {
          java.net.URL imgURL = getClass().getResource(path);
          if (imgURL != null) {
              return new ImageIcon(imgURL, description);
          } else {
              System.err.println("Couldn't find file: " + path);
              return null;
          }
      }
      

      【讨论】:

        【解决方案3】:

        文件 map.jpg 可能与 java 文件不在同一个包(文件夹)中。检查一下。

        【讨论】:

          猜你喜欢
          • 2014-07-13
          • 1970-01-01
          • 1970-01-01
          • 2021-02-11
          • 1970-01-01
          • 1970-01-01
          • 2016-11-14
          • 2015-07-25
          • 2011-07-04
          相关资源
          最近更新 更多