Я пытаюсь отобразить JLabel, который имеет несколько строк текста и изображения следующим образом:
String html = "<html> hello </br> <img src = \"/absolute/path/here\" height = \"30\" width =\"40\"/> </html>";
JLabel l = new JLabel(html);
Для изображения все, что я получаю, является разорванным изображением, действительно ли возможно вложить теги img в JLabel?
Править: Я хочу добавить повторные изображения к JLabel, таким образом, я не думаю, что использование ImageIcon сделает здесь.
Спасибо
Вместо того, чтобы пытаться иметь несколько изображений на одном JLabel, почему бы просто не иметь много JLabels, каждый с одним изображением (как описано uthark), а затем сгруппировать все метки вместе на одной JPanel. Это должно дать вам эффект, который вы ищете, с минимальной дополнительной сложностью.
Если вы не довольны JEditorPane, вы в основном смотрите на полноценный веб-браузер внутри Swing.
В идеале вы должны использовать JWebPane, который был бы представлением WebKit в качестве компонента Swing, но он еще не вышел. Самая последняя информация, которую мне удалось найти, - это сообщение в блоге .
Проект DJ позволяет встраивать собственный браузер платформы в Swing. Он использует Internet Explorer в Windows и XULRunner в Linux.Он не поддерживает Mac.
Встроенные изображения не поддерживаются в HTML. Таким образом, вы должны использовать setIcon или предоставить ImageIcon конструктору JLabel; HTML не может иметь тега IMG.
JLabel imageLabel =
new JLabel(labelText,
new ImageIcon("path/to/image.gif"),
JLabel.CENTER);
В вашем случае вам нужно использовать JTextPane для отображения HTML. См. Руководство здесь
Используйте JEditorPane для отображения HTML. Вы можете изменить фон, текст, шрифт и т. Д., Чтобы он выглядел как ярлык.