/* 
  * @(#)HtmlDemo.java 1.4 99/07/23 
  * 
  * Copyright (c) 1997-1999 by Sun Microsystems, Inc. All Rights Reserved. 
  *  
  * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use, 
  * modify and redistribute this software in source and binary code form, 
  * provided that i) this copyright notice and license appear on all copies of 
  * the software; and ii) Licensee does not utilize the software in a manner 
  * which is disparaging to Sun. 
  *  
  * This software is provided "AS IS," without a warranty of any kind. ALL 
  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY 
  * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR 
  * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE 
  * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING 
  * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS 
  * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, 
  * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER 
  * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF 
  * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE 
  * POSSIBILITY OF SUCH DAMAGES. 
  *  
  * This software is not designed or intended for use in on-line control of 
  * aircraft, air traffic, aircraft navigation or aircraft communications; or in 
  * the design, construction, operation or maintenance of any nuclear 
  * facility. Licensee represents and warrants that it will not use or 
  * redistribute the Software for such purposes. 
  */ 
  
  
 import javax.swing.*; 
 import javax.swing.event.*; 
 import javax.swing.text.*; 
 import javax.swing.text.html.*; 
 import javax.swing.border.*; 
 import javax.swing.colorchooser.*; 
 import javax.swing.filechooser.*; 
 import javax.accessibility.*; 
  
 import java.awt.*; 
 import java.awt.event.*; 
 import java.beans.*; 
 import java.util.*; 
 import java.io.*; 
 import java.applet.*; 
 import java.net.*; 
  
 /** 
  * Html Demo 
  * 
  * @version 1.4 99/07/23 
  * @author Jeff Dinkins 
  */ 
 public class HtmlDemo extends DemoModule { 
  
     JEditorPane html; 
      
     /** 
      * main method allows us to run as a standalone demo. 
      */ 
     public static void main(String[] args) { 
  HtmlDemo demo = new HtmlDemo(null); 
  demo.mainImpl(); 
     } 
      
     /** 
      * HtmlDemo Constructor 
      */ 
     public HtmlDemo(SwingSet2 swingset) { 
         // Set the title for this demo, and an icon used to represent this 
         // demo inside the SwingSet2 app. 
         super(swingset, "HtmlDemo", "toolbar/JEditorPane.gif"); 
   
         try { 
      URL url = null; 
      // System.getProperty("user.dir") + 
      // System.getProperty("file.separator"); 
      String path = null; 
      try { 
  path = "/resources/index.html"; 
  url = getClass().getResource(path); 
             } catch (Exception e) { 
  System.err.println("Failed to open " + path); 
  url = null; 
             } 
       
             if(url != null) { 
                 html = new JEditorPane(url); 
                 html.setEditable(false); 
                 html.addHyperlinkListener(createHyperLinkListener()); 
   
  JScrollPane scroller = new JScrollPane(); 
  JViewport vp = scroller.getViewport(); 
  vp.add(html); 
                 getDemoPanel().add(scroller, BorderLayout.CENTER); 
             } 
         } catch (MalformedURLException e) { 
             System.out.println("Malformed URL: " + e); 
         } catch (IOException e) { 
             System.out.println("IOException: " + e); 
         } 
     } 
  
     public HyperlinkListener createHyperLinkListener() { 
  return new HyperlinkListener() { 
      public void hyperlinkUpdate(HyperlinkEvent e) { 
  if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) { 
      if (e instanceof HTMLFrameHyperlinkEvent) { 
  ((HTMLDocument)html.getDocument()).processHTMLFrameHyperlinkEvent( 
      (HTMLFrameHyperlinkEvent)e); 
      } else { 
  try { 
      html.setPage(e.getURL()); 
  } catch (IOException ioe) { 
      System.out.println("IOE: " + ioe); 
  } 
      } 
  } 
      } 
  }; 
     } 
      
 } 
 

解决方案 »

  1.   

    rinehart(rinehart)     DemoModule在那???
      

  2.   

    不好意思,找不到了!换一个更好的!
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;public class Test extends JFrame {
    private JEditorPane editorPane = new JEditorPane(); public Test() {
    Container contentPane = getContentPane(); String url = "file:" + System.getProperty("user.dir") +
     System.getProperty("file.separator") +
     "java.util.Hashtable.html"; editorPane.setEditable(false); try { 
    editorPane.setPage(url);
    }
    catch(Exception ex) { ex.printStackTrace(); } contentPane.add(new ControlPanel(), BorderLayout.NORTH);
    contentPane.add(new JScrollPane(editorPane), 
    BorderLayout.CENTER);
    }
    class ControlPanel extends JPanel {
    private JCheckBox edit = new JCheckBox("Editable"); public ControlPanel() {
    add(edit);
    edit.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    editorPane.setEditable(edit.isSelected());
    }
    });
    }
    }
    public static void main(String args[]) {
    GJApp.launch(new Test(), 
    "JEditorPane",300,300,650,450);
    }
    }
    class GJApp extends WindowAdapter {
    static private JPanel statusArea = new JPanel();
    static private JLabel status = new JLabel(" ");
    static private ResourceBundle resources; public static void launch(final JFrame f, String title,
      final int x, final int y, 
      final int w, int h) {
    launch(f,title,x,y,w,h,null);
    }
    public static void launch(final JFrame f, String title,
      final int x, final int y, 
      final int w, int h,
      String propertiesFilename) {
    f.setTitle(title);
    f.setBounds(x,y,w,h);
    f.setVisible(true); statusArea.setBorder(BorderFactory.createEtchedBorder());
    statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
    statusArea.add(status);
    status.setHorizontalAlignment(JLabel.LEFT); f.setDefaultCloseOperation(
    WindowConstants.DISPOSE_ON_CLOSE); if(propertiesFilename != null) {
    resources = ResourceBundle.getBundle(
    propertiesFilename, Locale.getDefault());
    } f.addWindowListener(new WindowAdapter() {
    public void windowClosed(WindowEvent e) {
    System.exit(0);
    }
    });
    }
    static public JPanel getStatusArea() {
    return statusArea;
    }
    static public void showStatus(String s) {
    status.setText(s);
    }
    static Object getResource(String key) {
    if(resources != null) {
    return resources.getString(key);
    }
    return null;
    }
    }
      

  3.   

    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;public class EditorPaneTest
    {  public static void main(String[] args)
       {  JFrame frame = new EditorPaneFrame();
          frame.show();
       }
    }class EditorPaneFrame extends JFrame
    {  public EditorPaneFrame()
       {  setTitle("EditorPaneTest");
          setSize(600, 400);
          addWindowListener(new WindowAdapter()
             {  public void windowClosing(WindowEvent e)
                {  System.exit(0);
                }
             } );      // set up text field and load button for typing in URL      url = new JTextField(30);      loadButton = new JButton("Load");
          loadButton.addActionListener(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("Error: " + e);
                   }
                }
             });      // set up back button and button action      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 = (String)urlStack.peek();
                      url.setText(urlString);                  editorPane.setPage(urlString);
                   }
                   catch(IOException e)
                   {  editorPane.setText("Error: " + e);
                   }
                }
             });      // set up editor pane and hyperlink listener      editorPane = new JEditorPane();
          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("Error: " + e);
                      }
                   }
                }
             });      // set up checkbox for toggling edit mode      editable = new JCheckBox();
          editable.addActionListener(new ActionListener()
             {  public void actionPerformed(ActionEvent event)
                {  editorPane.setEditable(editable.isSelected());
                }
             });      Container contentPane = getContentPane();
          contentPane.add(new JScrollPane(editorPane), "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);      contentPane.add(panel, "South");
       }   private JTextField url;
       private JCheckBox editable;
       private JButton loadButton;
       private JButton backButton;
       private JEditorPane editorPane;
       private Stack urlStack = new Stack();
    }
      

  4.   

    这里面有下载http://javabus.home.sohu.com
    的程序下载区
      

  5.   

    rinehart(rinehart)
       
       JEditorPane对html支持的好像不是很好,table显示的不好。谢谢你的帮助   忘了给你加分了,不好意思,别有什么意见呀,呵呵,我技术不高,会贴子的质量也不会太高