Я пишу код Java, который также состоит из HTML. Я хочу просмотреть этот HTML-код только в JFrame
. Есть ли какое-либо решение в Java API?Показать предварительный просмотр кода HTML в JFrame?
Не могли бы вы посоветовать мне решить эту проблему?
Я пишу код Java, который также состоит из HTML. Я хочу просмотреть этот HTML-код только в JFrame
. Есть ли какое-либо решение в Java API?Показать предварительный просмотр кода HTML в JFrame?
Не могли бы вы посоветовать мне решить эту проблему?
Да. JEditorPane
может показывать (простой) HTML. См. Это JEditorPane
tutorial для более подробной информации.
JEditorPane
поддерживает подмножество элементов HTML 3.2, а также простые стили (CSS). Хотя эта задача может быть достигнута с использованием CSS, элемент тела HTML 3.2 также принимает значение bgcolor
.
import java.awt.Dimension;
import javax.swing.*;
class WebPageWithBackground {
WebPageWithBackground() {
String html = "<html><body bgcolor='#ffbb99'>Hi!";
JEditorPane jep = new JEditorPane();
jep.setContentType("text/html");
jep.setText(html);
jep.setPreferredSize(new Dimension(400,50));
JOptionPane.showMessageDialog(null, jep);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new WebPageWithBackground();
}
});
}
}
На самом деле, почти каждый Свинг компонент, который может отображать пользовательский пользовательский текст где-то позволяет HTML вместо текста. Напр. Текст JButton, заголовок закладки JTabbedPane, JTable cell/header, JLabel text, JList/JTree/JComboBox, визуализаторы ячеек компонентов и другие.
Чтобы использовать HTML внутри любого из них - просто добавьте тег «" в начале текста - этого будет достаточно, чтобы позволить парсенсу просмотра знать, что у вас есть HTML внутри.
Также HTML, который поддерживается на Java, довольно старый, и большинство новых функций не будут работать, как вы могли бы видеть их в современных браузерах или визуальных редакторах. Но его еще более чем достаточно, чтобы создать какой-то контент с расширенными компонентами, где вам нужно.
И еще одна вещи - если вы хотите, чтобы отобразить некоторые локальные изображения, находящиеся внутри в HTML вы должны изменить базовое местоположение компонента, чтобы он мог правильно загрузить их:
component.putClientProperty (BasicHTML.documentBaseKey,
new File ("/local/path/").toURI().toURL());
Некоторые правильный URL должен быть в соответствии с этим (локальный или удаленный).
Может ли JEditorPane отображать цвет фона тела HTML. ?? – mani
Что случилось, когда вы попробовали? –
не отображает цвет фона HTML-кода. – mani