This program demonstrates how to display HTML documents in an editor pane. : Text EditorPane « Swing JFC « Java






This program demonstrates how to display HTML documents in an editor pane.

This program demonstrates how to display HTML documents in an editor pane.
 


/*
   This program is a part of the companion code for Core Java 8th ed.
   (http://horstmann.com/corejava)

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Stack;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;

/**
 * This program demonstrates how to display HTML documents in an editor pane.
 * @version 1.03 2007-08-01
 * @author Cay Horstmann
 */
public class EditorPaneTest
{
   public static void main(String[] args)
   {
      EventQueue.invokeLater(new Runnable()
         {
            public void run()
            {
               JFrame frame = new EditorPaneFrame();
               frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               frame.setVisible(true);
            }
         });
   }
}

/**
 * This frame contains an editor pane, a text field and button to enter a URL and load a document,
 * and a Back button to return to a previously loaded document.
 */
class EditorPaneFrame extends JFrame
{
   public EditorPaneFrame()
   {
      setTitle("EditorPaneTest");
      setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

      final Stack<String> urlStack = new Stack<String>();
      final JEditorPane editorPane = new JEditorPane();
      final JTextField url = new JTextField(30);

      // set up hyperlink listener

      editorPane.setEditable(false);
      editorPane.addHyperlinkListener(new HyperlinkListener()
         {
            public void hyperlinkUpdate(HyperlinkEvent event)
            {
               if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
               {
                  try
                  {
                     // remember URL for back button
                     urlStack.push(event.getURL().toString());
                     // show URL in text field
                     url.setText(event.getURL().toString());
                     editorPane.setPage(event.getURL());
                  }
                  catch (IOException e)
                  {
                     editorPane.setText("Exception: " + e);
                  }
               }
            }
         });

      // set up checkbox for toggling edit mode

      final JCheckBox editable = new JCheckBox();
      editable.addActionListener(new ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               editorPane.setEditable(editable.isSelected());
            }
         });

      // set up load button for loading URL

      ActionListener listener = new ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               try
               {
                  // remember URL for back button
                  urlStack.push(url.getText());
                  editorPane.setPage(url.getText());
               }
               catch (IOException e)
               {
                  editorPane.setText("Exception: " + e);
               }
            }
         };

      JButton loadButton = new JButton("Load");
      loadButton.addActionListener(listener);
      url.addActionListener(listener);

      // set up back button and button action

      JButton backButton = new JButton("Back");
      backButton.addActionListener(new ActionListener()
         {
            public void actionPerformed(ActionEvent event)
            {
               if (urlStack.size() <= 1) return;
               try
               {
                  // get URL from back button
                  urlStack.pop();
                  // show URL in text field
                  String urlString = urlStack.peek();
                  url.setText(urlString);
                  editorPane.setPage(urlString);
               }
               catch (IOException e)
               {
                  editorPane.setText("Exception: " + e);
               }
            }
         });

      add(new JScrollPane(editorPane), BorderLayout.CENTER);

      // put all control components in a panel

      JPanel panel = new JPanel();
      panel.add(new JLabel("URL"));
      panel.add(url);
      panel.add(loadButton);
      panel.add(backButton);
      panel.add(new JLabel("Editable"));
      panel.add(editable);

      add(panel, BorderLayout.SOUTH);
   }

   private static final int DEFAULT_WIDTH = 600;
   private static final int DEFAULT_HEIGHT = 400;
}

   
  








Related examples in the same category

1.Viewing RTF formatViewing RTF format
2.EditorPane SampleEditorPane Sample
3.Setting the Font and Color of Text in a JTextPane Using Styles: Makes text red
4.Setting the Font and Color of Text in a JTextPane Using Styles: Inherits from "Red"; makes text red and underlined
5.Setting the Font and Color of Text in a JTextPane Using Styles: Makes text 24pts
6.Setting the Font and Color of Text in a JTextPane Using Styles: Makes text italicized
7.JEditorPane and the Swing HTML PackageJEditorPane and the Swing HTML Package
8.JEditorPane and the Swing HTML Package 2JEditorPane and the Swing HTML Package 2
9.JEditorPane and the Swing HTML Package 3JEditorPane and the Swing HTML Package 3
10.JEditorPane and the Swing HTML Package 4JEditorPane and the Swing HTML Package 4
11.JEditorPane and the Swing HTML Package 5JEditorPane and the Swing HTML Package 5
12.JEditorPane and the Swing HTML Package 6JEditorPane and the Swing HTML Package 6
13.JEditorPane and the Swing HTML Package 7JEditorPane and the Swing HTML Package 7
14.JEditorPane and the Swing HTML Package 8JEditorPane and the Swing HTML Package 8
15.JEditorPane and the Swing HTML Package 9JEditorPane and the Swing HTML Package 9
16.EditorPane Example 10EditorPane Example 10
17.JEditorPane Example 10 - using getIteratorJEditorPane Example 10 - using getIterator
18.JEditorPane Example 11JEditorPane Example 11
19.JEditorPane Example 12JEditorPane Example 12
20.JEditorPane Example 13JEditorPane Example 13
21.JEditorPane Example 14JEditorPane Example 14
22.JEditorPane Example 15JEditorPane Example 15
23.JEditorPane Example 16JEditorPane Example 16
24.JEditorPane Example 17JEditorPane Example 17
25.JEditorPane Example 18JEditorPane Example 18
26.JEditorPane Example 19JEditorPane Example 19
27.JEditorPane Example 20JEditorPane Example 20
28.JEditorPane and HyperlinkListener Demo
29.Create a right-aligned tab stop at 200 pixels from the left margin
30.Create a center-aligned tab stop at 300 pixels from the left margin
31.Create a decimal-aligned tab stop at 400 pixels from the left margin
32.Use SimpleAttributeSet with JTextPane
33.Show html
34.Show web page
35.Change mouse cursor during mouse-over action on hyperlinks
36.Create a simple browser in Swing
37.Add colored text to the document
38.Returns the offset of the bracket matching the one at the specified offset of the document
39.Return the leading whitespace of that string, for indenting subsequent lines
40.Locates the end of the word at the specified position.
41.Locates the start of the word at the specified position.
42.Get Trailing White Space