Относительный путь в HTML JLabel

Хорошо, следующий сервис должен быть полезен для конвертации: http://rate-exchange.herokuapp.com/ . Наша компания использует это для многих живых проектов, включая расширение Chrome, которое, кажется, уже запущено.

5
задан kroiz 20 October 2009 в 10:34
поделиться

2 ответа

Я вижу два варианта:

Я не знаю почему, но для меня это работает

"                       <img src=\"file:s.png\">\n"+

при условии, что s.png находится в текущем рабочем каталоге.

Другой вариант, который кажется более подходящим для меня является:

URL url = HTMLLabel.class.getResource( "/s.png" );
  String html = "<html>\n" +
    "       <body>\n" +
    "               <div style=\"text-align: center;\">\n" + 
    "                       <img src=\""+url+"\">\n"+
    "               </div>\n"+
    "       </body>\n"+
    "</html>";
3
ответ дан 14 December 2019 в 04:42
поделиться

Почему ты вообще так делаешь? Просто используйте этот конструктор JLabel (изображение значка)

JLabel label = new JLabel(createImageIcon("s.png","description"));

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;
  }
}

Или, если вы настаиваете на варианте html.

кстати, в файловом протоколе используются 3 слэша ( file: //s.png недействителен), а file: ///s.png будет означать C: \ s.png . Если образ находится в начальном каталоге, вы можете использовать его.

String path = System.getProperty("user.dir");
String html =
  "<html>\n" +
     "<body>\n" +
        "<div style=\"text-align: center;\">\n" +
          "<img src=\"file:///"+path+"/s.png\">\n"+
        "</div>\n"+
     "</body>\n"+
  "</html>";

Но я не даю никаких гарантий относительно второго решения.

2
ответ дан 14 December 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: