Link to home
Start Free TrialLog in
Avatar of rzvika
rzvika

asked on

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?
ASKER CERTIFIED SOLUTION
Avatar of Hans_Klose
Hans_Klose

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of rzvika
rzvika

ASKER

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!
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
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>";
   
}
//------------
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
Avatar of rzvika

ASKER

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
javax.swing is the new name of the Swing package (com.sun.java.swing)

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............