Использовать приложение JavaFx в проекте Swing

Я должен просматривать HTML-файлы в прикладной программе Windows. Для этого я использую элемент управления JEditorPane, но он не поддерживает некоторые теги HTML и форматирование мешает в JEditorPane. Я искал в сети, и сеть предлагает мне использовать элемент управления JavaFXApplication для него. В C# есть элемент управления WebBrowser, который отображает HTML-файл в том же формате легко. Можно ли в java отображать html-файлы со всеми поддерживающими тегами. Можете ли вы предложить мне контроль или что-то не так в моем коде. Я использую следующий код.

 try
 { 
  File htmlfile= new File("path of the html file");
  JEditorPane htmlPane= new JEditorPane();
  htmlPane.setEditable(false);
  htmlPane.setContentType("text/html");
  htmlPane.setPage(htmlfile.toURI().toURL());
  JScrollPane jsp= new JScrollPane(htmlPane);
  add(jsp);
  }

  catch(Exception ex)
   {


    }

1 ответ

Решение

Если я правильно понимаю ваш вопрос, вы пытаетесь просмотреть HTML-ИСТОЧНИК и не пытаетесь реализовать веб-браузер.

Если это так, вы можете использовать редактор HTML в JavaFX, предполагая, что вы используете Java 6 с JavaFX ИЛИ Java 7, которая включает JavaFX

Вот краткий пример использования пакета javafx с использованием JFXPanel и HTMLEditor:

public class JavaFXDemo {

    private static void initAndShowGUI() {
        JFrame frame = new JFrame("HTML Editor");
        final JFXPanel fxPanel = new JFXPanel();
        frame.add(fxPanel);
        frame.setSize(600, 400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                final HTMLEditor htmlEditor = new HTMLEditor();
                Scene scene = new Scene(htmlEditor);
                fxPanel.setScene(scene);
            }
        });
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                initAndShowGUI();
            }
        });
    }
}
Другие вопросы по тегам