• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 217
  • Last Modified:

JEditPane

i want to show text by jEditPane.
as i have understood, i can give the constructor an url or string represents it.
is there a way to give it a string that contains exactly the same text as in the source file of the url?
0
rzvika
Asked:
rzvika
  • 4
  • 3
  • 2
1 Solution
 
Hans_KloseCommented:
By default you will use DefaultEditorKit which is text/plain is you want tp use setText() with html you must first use
void setEditorKit(EditorKit kit) to get the right editor  
There are several ways to load content into this component.

The setText() method can be used to initialize the component from a string. In this case the current EditorKit will be used, and the content type will be expected to be of this type.

The read method can be used to initialize the component from a Reader. Note that if the content type is html, relative references (e.g. for things like images) can't be resolved unless the <base> tag is used or the Base property on HTMLDocument is set. In this case the current EditorKit will be used, and the content type will be expected to be of this type.

The setPage() method can be used to initialize the component from a URL. In this case, the content type will be determined from the URL, and the registered EditorKit for that content type will be set.

0
 
rzvikaAuthor Commented:
well i did:

jEditorPane1 = new com.sun.java.swing.JEditorPane();
jEditorPane1.setBounds(0,0,324,444);
jEditorPane1.setFont(new Font("Serif", Font.PLAIN, 12));
jEditorPane1.setForeground(new Color(0));
jEditorPane1.setBackground(new Color(16777215));
jEditorPane1.setEditorKit(jEditorPane1.getEditorKitForContentType("text/html"));
jEditorPane1.setText(getTextPane());

(getTextPane() returns a string).
i created a page of an html and saw what was the code and i told getTextPane() to return this code by string.
in the program, the editor show it as a regular text.
please tell me what's wrong.
thank you!
0
 
Hans_KloseCommented:
I have had the same problem that you, run into. I thought that this would work. I will take another look at it. And tell you if I figue it out. For now you can try useing the JEditorPane(String type, String text) ; constractor. see if that works better for you. And just put new panel each time you update the Html
0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
Hans_KloseCommented:
I have done this with 1.2 and it seem to work give it a shoot.
//------------
//import com.sun.java.swing.*;
import javax.swing.*;
import java.awt.*;


public class MainWindow extends JWindow
{
    MainWindow()
    {
        super();
       
        addWindowListener(new StdWindowAdapter());
       
        m_pnlHtmlBrowser.setVisible(true);
        m_pnlHtmlBrowser.setBackground(Color.red);
       
        getContentPane().add(m_pnlHtmlBrowser);
       
        Toolkit oToolKit = getToolkit();
        Dimension oDimenation  = oToolKit.getScreenSize();
       
       
        //make the screen half size of the display and show in the middle
        int x = oDimenation.width/4;
        int y = oDimenation.height/4;
        setBounds(x, y, x*   2, y*2);
        m_pnlHtmlBrowser.setBounds(x, y, x*   2, y*2);
       
        m_pnlHtmlBrowser.setEditorKit(new javax.swing.text.html.HTMLEditorKit());
        System.out.println(m_pnlHtmlBrowser.getContentType());
        m_pnlHtmlBrowser.setText(m_strHtmlContent);
       
       
        repaint();
        validate();
       
    }
   
    //member declaration
    JEditorPane m_pnlHtmlBrowser = new JEditorPane();
   
    String m_strHtmlContent = "<HTML><HEAD><TITLE>Critical Analysis</TITLE></HEAD><BODY BGCOLOR=\"#00ff40\" TEXT=\"#804000\"><B>BOLD</B>   Normal  <I>Italic</I></BODY></HTML>";
   
}
//------------
0
 
heyhey_Commented:
it seems that setText does not work with older versions of Swnig (tested with 1.0.2)
you can check this URL for a workaround ...
http://developer.java.sun.com/developer/bugParade/bugs/4132791.html

(note:
setEditorKit(new com.sun.java.swing.text.html.HTMLEditorKit());
works exactly like
setEditorKit(jEditorPane1.getEditorKitForContentType("text/html"));
at least in  Swing 1.0.2
)

hope this helps
  heyhey
0
 
rzvikaAuthor Commented:
Hans_Klose, your code doesn't work on jdk 1.1.6 (i know you didn't say so), it does the same.
isn't there a way to do it with this version?
(and what is javax? (is it only in jdk 1.2?))
thank you
0
 
heyhey_Commented:
javax.swing is the new name of the Swing package (com.sun.java.swing)

0
 
Hans_KloseCommented:
If you want to make it work with 1.1.6 take heyhey_ s work around it seems to be the only way I have seen so far............

0
 
rzvikaAuthor Commented:
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 4
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now