JTextPane and HTML

My pane is continuing to display the text as plain text instead of html. Why is that?
JTextPane p=new JTextPane(new HTMLDocument());
add(p);
String html="<html><body>TEST</body></html>
p.setText(html);From what I've learned from the documentation, the pane is initialised with html. When using setText(), the pane still keeps it html style. So, why am I getting plain text???

If I explicitly use setContentType("text/html") it works.
But it only works for small html pages. If I use a setText for a page greater than 50k, the page is blank. After that, a getText() results in this:
<html>
<head>
</head>
<body>
</body>
</html>
Is there a maximum?

Similar Messages

  • TableCellRenderer with JTextPane and HTML

    I'm writing a TableCellRenderer that will be rendering HTML content using a custom extension to the JTextPane class. Where I'm having trouble is in calculating the necessary height to set the table row based on the content of the cell (in this case HTML text in my JTextPane component). I know the width of the table cell and I can figure out the width of the content (taking into account the formatting because of the HTML content). This all works perfectly until the column width shrinks enough to cause the underlying view to word wrap.
    Here is the code snippet from my JTextPane to count the number of lines of text and calculate the width of the content
      public int getWidthOfContent() {
        getLineCount();
        return m_iWidthOfContent;
      public int getWidthOfContent(int p_iWidthOfArea) {
        getLineCount(p_iWidthOfArea);
        return m_iWidthOfContent;
      public int getLineCount(int iComponentWidth) {
        int iWidth = 0;
        int iBreakCount = 0;
        int iHardBreakCount = 0;
        int iTotalWidth = 0;
        int iTotalContentWidth = 0;
        int iMaxHeight = 0;
        Document doc = getDocument();
        ElementIterator it = new ElementIterator(doc.getDefaultRootElement());
        StyleSheet styleSheet = null;
        if(doc instanceof HTMLDocument) {
          styleSheet = ((HTMLDocument)doc).getStyleSheet();
        if(iComponentWidth == -1) {
          iWidth = getWidth();
        else {
          iWidth = iComponentWidth;
        Element e;
        while ((e=it.next()) != null) {
          AttributeSet attributes = e.getAttributes();
          Enumeration enumeration = attributes.getAttributeNames();
          boolean bBreakDetected = false;
          while(enumeration.hasMoreElements()) {
            Object objName = enumeration.nextElement();
            Object objAttr = attributes.getAttribute(objName);
            if(objAttr instanceof HTML.Tag) {
              HTML.Tag tag = (HTML.Tag)objAttr;
    //          if(tag == HTML.Tag.BODY) {
    //            UCSParagraphView pv = new UCSParagraphView(e);
    //            if(pv.willWidthBreakView(iWidth)) {
    //              iHardBreakCount++;
              FontMetrics fontMetrics = null;
              if(styleSheet != null && styleSheet.getFont(attributes) != null) {
                fontMetrics = getFontMetrics(styleSheet.getFont(attributes));
              if(fontMetrics != null && fontMetrics.getHeight() > iMaxHeight) {
                iMaxHeight = fontMetrics.getHeight();
              if(tag.breaksFlow()) {
                //This must be a breaking tag....this will add another line to the count
                bBreakDetected = true;
                if(tag.equals(HTML.Tag.BR) || tag.isBlock() && (!tag.equals(HTML.Tag.HEAD) && !tag.equals(HTML.Tag.BODY))) {
                  if(iTotalContentWidth == 0) {
                    iTotalContentWidth = iTotalWidth;
                    iTotalWidth = 0;
                  else if(iTotalWidth > iTotalContentWidth) {
                    iTotalContentWidth = iTotalWidth;
                    iTotalWidth = 0;
                  else {
                    iTotalWidth = 0;
                  if(tag.equals(HTML.Tag.H1) || tag.equals(HTML.Tag.H2) || tag.equals(HTML.Tag.H3) || tag.equals(HTML.Tag.H4)) {
                    iHardBreakCount += 3; //These count as three lines (Blank - Content - Blank)
                  else {
                    iHardBreakCount++;
                iBreakCount++;
          if(!bBreakDetected) {
            Font font;
            FontMetrics fontMetrics;
            if(e.getDocument() instanceof HTMLDocument) {
              font = ((HTMLDocument)e.getDocument()).getStyleSheet().getFont(e.getAttributes());
              fontMetrics = getFontMetrics(font);
            else {
              font = getFont();
              fontMetrics = getFontMetrics(font);
            int iRangeStart = e.getStartOffset();
            int iRangeEnd = e.getEndOffset();
            if(fontMetrics.getHeight() > iMaxHeight) {
              iMaxHeight = fontMetrics.getHeight();
            if(e.isLeaf()) {
              String strText;
              try {
                strText = this.getText(iRangeStart, iRangeEnd - iRangeStart);
                if(strText.equals("\n")) {
                  //iBreakCount++;
                iTotalWidth += SwingUtilities.computeStringWidth(fontMetrics, strText);
              catch (BadLocationException ex) {
                //Something happened.....don't care....just eat the exception
        m_iMaxFontHeight = iMaxHeight;
        m_iWidthOfContent = iTotalWidth;
        m_iHardBreakCount = iHardBreakCount;
        if(iWidth > 0) {
          int iLineCount = (iTotalWidth / iWidth) + iBreakCount;
          return iLineCount;
        return 1;
      }And here is the code from my TableCellRenderer that uses the above information
       public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                                                      boolean hasFocus, int row, int column) {
         if(ValidationHelper.hasText(value) && value.toString().indexOf("<html>") != -1) {
           UCSHTMLTextPane pane = new UCSHTMLTextPane();
           pane.setText(ValidationHelper.getTrimmedText(value.toString()));
           BigDecimal lWidthCell = new BigDecimal(table.getCellRect(row, column, false).getWidth() - 15);
           BigDecimal lWidthContent = new BigDecimal(pane.getWidthOfContent(lWidthCell.intValue()));
           int iHardBreakCount = pane.getHardBreakCount();
           BigDecimal lLineCount = lWidthContent.divide(lWidthCell, BigDecimal.ROUND_CEILING);
           int iLineCount = lLineCount.intValue();
           double dWidthCell = lWidthCell.doubleValue();
           double dWidthContent = lWidthContent.doubleValue();
           double dWidthContentPlusFivePercent = dWidthContent + (dWidthContent * .01);
           double dWidthContentMinumFivePercent = dWidthContent - (dWidthContent * .01);
           if(dWidthCell >= dWidthContentMinumFivePercent && dWidthCell <= dWidthContentPlusFivePercent) {
             iLineCount++;
           iLineCount += iHardBreakCount;
           int iMaxFontHeight = pane.getMaxFontHeight();
           int iHeight = (iMaxFontHeight * iLineCount) + 5;
           if ( (iLineCount > 0) && (table.getRowHeight(row) != iHeight)) {
             pane.setPreferredSize(new Dimension(0, iHeight));
             if(m_bAutoAdjustHeight) {
               table.setRowHeight(row, iHeight);
           if(iLineCount == 1) {
             if(iHeight != table.getRowHeight()) {
               if(m_bAutoAdjustHeight) {
                 table.setRowHeight(iHeight);
           setComponentUI(pane, table, row, column, isSelected, hasFocus);
           return pane;
    }Any suggestions?

    Hello,
    You must initialize correctly your JTextPane like this:
    javax.swing.text.html.HTMLEditorKit htmlEditorKit = new javax.swing.text.html.HTMLEditorKit();
    javax.swing.text.html.HTMLDocument htmlDoc = (javax.swing.text.html.HTMLDocument)htmlEditorKit.createDefaultDocument();
    setEditorKit(htmlEditorKit);
    setDocument(htmlDoc);
    setEditable(true);
    setContentType("text/html");

  • JTextPane and HTML rendering

    HAi
    I have a web page with JApplet in it.
    I need to get a HTML page from server and display it. I wish to use either JEditorPane or JTextPane.
    The applet gets the file line by line from the server. I need to append the line by line to the component.
    (i need to do some mappings before displaying, thats why i need to get text in parts.)
    I tried to append line by line to JTextPane. But Pane is treating as text file. The tags are not getting recognised. Instead whole of the file is being displayed along with tags.
    Is there any way by which i can append the file line by line with the tags being interpreted as they should be.
    Anticipating an early reply
    With thanks and regards
    Maruti

    Hello,
    You must initialize correctly your JTextPane like this:
    javax.swing.text.html.HTMLEditorKit htmlEditorKit = new javax.swing.text.html.HTMLEditorKit();
    javax.swing.text.html.HTMLDocument htmlDoc = (javax.swing.text.html.HTMLDocument)htmlEditorKit.createDefaultDocument();
    setEditorKit(htmlEditorKit);
    setDocument(htmlDoc);
    setEditable(true);
    setContentType("text/html");

  • JTextPane and HTML form

    I'd like to display html page containing simple HTML form. JTectPane renders tis form very good but i sthere any way to handle any data change/submit on such a form in JTextPane

    Hi,
    Take a look at this example
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.net.*;
    public class TestShowPage {
    public static void main(String args[]) { 
    JTextPane tp = new JTextPane();
    JScrollPane js = new JScrollPane();
    js.getViewport().add(tp);
    JFrame jf = new JFrame();
    jf.getContentPane().add(js);
    jf.pack();
    jf.setSize(400,500);
    jf.setVisible(true);
    try {
    URL url = new URL("http://www.globalleafs.com/Download.html" );
    tp.setPage(url);
    catch (Exception e) {
    e.printStackTrace();
    Just compile and run the programme. see the output. If you need more info of such type of programmes, check http://www.globalleafs.com/Download.html
    Uma
    Java Developer
    http://www.globalleafs.com

  • Obnoxious JTextPane and JScrollPane problem.

    I have written a Tailing program. All works great except for one really annoying issue with my JScollPane. I will do my best to explain the problem:
    The program will continue tailing a file and adding the text to the JTextPane. When a user scrolls up on the JScrollPane, the program still adds the text to the bottom of the JTextPane and the user can continue to view what they need.
    Here is the problem: I have text being colored throughout the text pane. For instance, the word ERROR will be in red. The problem is when the program colors the text, it moves the scroll pane to the line where word that was colored is at. I don't want that. If the user moves the scroll bar, I want the scroll bar to always stay there. I don't want the program to move to the text that was just colored.
    Is there a way to turn that off? I can't find anything like that anywhere.

    Coloring text will not cause the scrollpane to scroll.
    You must be playing with the caret position or something.
    If you need further help then you need to create a [url http://homepage1.nifty.com/algafield/sscce.html]Short, Self Contained, Compilable and Executable, Example Program (SSCCE) that demonstrates the incorrect behaviour, because I can't guess exactly what you are doing based on the information provided.
    And don't forget to use the [url http://forum.java.sun.com/help.jspa?sec=formatting]Code Formatting Tags so the code retains its original formatting.

  • JTextPane - Parsing HTML

    Hello all,
    I'm working on implementing a Web Browser in Java that recognizes only a small subset of the HTML tags.
    A simplistic way to display a Web Page is to use a JTextPane (JEditorPane) with the setPage(URL) method. The problem here is that setPage() recognizes more tags than I would want him to.
    My first solution was to subclass the ViewFactory class. It worked fine except for tags that are synthesized to HTML.Tag.Content. There are some tags such as <U> (but I can't filter HTML.Tag.Content because I want to accept tags such as <B>).
    Next, I tried subclassing HTMLDocument and its inner class HTMLDocument.HTMLReader. Before going any further, here's the code I use to display HTML in my JTextPane:
    editor = new JTextPane();
    // JScrollPane will contain editor
    JScrollPane scrollPane = new JScrollPane(editor,
    ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    // init JTextPane
    editor.setEditable(false);
    EditorKit kit = new BasicHTMLEditorKit();
    editor.setEditorKit(kit);
    editor.addHyperlinkListener(...);
    loadPage("http://www.iro.umontreal.ca");
    private void loadPage(String strURL) {
    try {
    loadPage(new URL(strURL));
    } catch (Exception exc) {
    editor.setText("Error: " + exc);
    private void loadPage(URL url) {
    /*Document doc = editor.getDocument();
    EditorKit kit = editor.getEditorKit();
    StringReader reader = new StringReader(HTMLTxt);*/
    try {
    editor.setPage(url);
    //kit.read(reader, doc, 0);
    } catch (Exception exc) {
    editor.setText("Error: " + exc);
    setSubWindowTitle(editor);
    I tried to set the JTextPane document using its constructor:
    new JTextPane(new BasicHTMLDocument());
    And using the setDocument() method.
    I also tried to override the createDefaultDocument of the HTMLEditorKit and return new BasicHTMLDocument().
    In each cases, the parsing works fine because I put some println() in the overriden handleSimpleTag and handleStartTag of my BasicHTMLDocument (note that BasicHTMLDocument extends HTMLDocument and BasicHTMLReader extends HTMLDocument.HTMLReader).
    BUT whenever I try to display the HTML, it does not work. It looks like the parsing tree does not exist anymore (I put some println() in an overriden ViewFactory).
    Could someone help me figuring this out? I'd really like to understand why my strategy does not work. And by the way, is there any other simpler solution ? (note that I am forced to use JTextPane and that I absolutely need to filter undesired tags).
    Thank you all very much. I hope someone will be able to help me! :)

    Bumped. Google and the rest of the internet have been of no help.

  • PDF output does not refresh data in BI Publisher, XML and HTML do refresh

    I just upgraded to BI Publisher 10.1.3.4.0 and I noticed that the PDF format of the reports does not reflect recent changes in data, while XML data and HTML output do reflect changes in data immediately.
    I'm using BI Publisher to print APEX applications reports. When I change some data in APEX forms, I click again in the Print button and the data remains unchanged. I made some testing inside Oracle BI Publisher, and noticed that XML data and HTML output do reflect changes, but PDF output remains with the old data for some unknown amount of time. I cannot identify a method to force the PDF to refresh, just un-log and log in again several times until the data appears updated. This is serious because when users change data and print again, they expect the changes to be reflected in the new printable report, and may not notice that the data is the old version.
    OS is Oracle Enterprise Linux.
    Any help on this will be very welcome.
    Francisco

    Open the report in Edit Mode Click on the reports and in the properties section Uncheck the
    Enable Document Cache Property and your issue should be resolved.

  • EDGE and HTML dynamic text in a "box" with scroll bar

    I'm new to EDGE, a win7pro master collection cs5.5 suite owner. I'm mainly in the Film/Video post production field (mostly AE, PPro, Pshop, IA) but have been branching into web design the last couple of years.  I use Dreamweaver, Fireworks, Flash. While I'm a expert user with all the Film/video apps, I would say I only have intermediate ability with the web apps. While I understand a lot of programing logic bulding blocks I'm not a coder.
    So since we're told "flash is dead",  my interest in Edge is to try to do some of the things that I can currently do in flash in  EDGE. I was excited when Edge first came out but lost interest when it became obvious that Adobe was not going to offer Edge and Muse to "suite owners" but only in their force feeding of the "Cloud". Better known as the "golden goose" for adobe stockholders and a never ending perpetual hole in the pocket for users. Anyway....
    I spent the last couple of days doing some of the tuts and messing with the UI. It's matured a lot since I was here last.
    I've been working on a flash site for a sports team where one of the pages is a player profile page where college recuriters and other interested parties can view recuriting relavent info/stats about players. This is how it works. While on the "Team" page a users clicks on  a button labled "Player Profiles" . (Animation) A "page" flies in and unfurls from the upper right corner (3d page flips effect created in AE played by flash as a frame SEQ). Once it lands filling most of the center of the screen there is a bright flash. As the brightness fades we see the "page" is a bordered box with a BG image of a ball field(End). (Animation) from behind the border in fly small pictures (player head shots with name and jersey number). They stream in and form a circle like a wagon train and the team logo zooms up from infinity to the center of the circle(End). As the user mouses over a player's pic it zooms up a little and gets brighter (like mouseover image nav thumbs for a image slider). If the user clicks on a player's head shot it flips over and scales up to become a text box with a scrollbar. The content of the box is a mix of images, static and dynamic text fields populated from data in an "player info data base" XML file, and some hyperlinks. It's all kept updated dynamicaly with current stats, info and images from the XML file. There is also a "PDF" button that allows the user to open/save/print a PDF of the player's profile (the PDF's are static files for now but the choice of which pdf to retrive is dynamicaly supplied via the XML file.
    So.... Is Edge now able to do something like this?  Would it need to be a collection of small animations? could these be "assembled" and connected as an asset in dreamweaver ?
    I thought I would approach this from the end (ie click on an image and display a box with dynamic TEXT fileds. ) since that is the most important part, ie displaying the dynamicaly updated profile info.  Sooooo....
    Can Edge display a scrolling text box with Images, static text, and html dynamic text in it??
    Joel

    The code is in composition ready. Click the filled {}

  • Re: [iPlanet-JATO] Tomcat 3.2 serving images and html?

    First of all David you are faster responding to email than I am. Thanks.
    We tried your scheme with no luck. You are using "ROOT" as your war file
    name ROOT, correct? Are you sure the jsp would reference
    "/images/MyProject/nppnback.gif"? Why is "MyProject" in there? Where is
    the directory "images" defined to Tomcat? Is it a default?
    Here's another try at explaining:
    In my JSP I have;
    <IMG SRC="/images/ef.gif" ALT=People Banner">
    My application is in webapps/EformsAppWar
    (jsps in EformsAppWar/EformsApp/eforms/*.jsp)
    (classes in EformsAppWar/WEB-INF/classes)
    so images are in webapps/EformsAppWar/images
    and there is, indeed a ef.gif there.
    However with no server.xml changes (everything default), Tomcat 3.2
    gives a 404 in his log and states in the 404 message that context is
    null (CTX < >) and ca't find /images/ef.gif + NULL.
    By the way I just noticed that in Tomcat 3.1 I have the images directory
    directly under webapps.
    ----- Original Message -----
    From: "David J.L. Martin" <<a href="/group/SunONE-JATO/post?protectID=114166018056146134184102046176231239071179066034">dave@t...</a>>
    Date: Wednesday, May 23, 2001 3:35 pm
    Subject: Re: [iPlanet-JATO] Tomcat 3.2 serving images and html?
    This works:
    If the doc root is webapps\ROOT --
    Using defaults...jsp's would be put in
    webapps\ROOT\MyProjectApp\MyProject\*.jsp
    and images would be put in webapps\ROOT\images\*.gif
    Then in your jsp...use the following reference:
    "/images/MyProject/nppnback.gif">
    That will work just using defaults and not playing with any of the
    config files...
    ie. webapps\ROOT\WEB-INF gets updated as well (with required
    classes).
    djm
    TechPie
    916 924-1832 (office)
    916 730-4743 (mobile)
    916 313-3531 (fax)
    <a href="/group/SunONE-JATO/post?protectID=114232044112042209130232046248130100239179057215113109152006048067">dmushrush@e...</a> wrote:
    Many of you are running Tomcat 3.2. Can anyone tell me how to get
    images to be served by Tomcat. In 3.1 if I referenced /images/image.gif> in my JSP, I could just place the images
    directory in the application
    (context) directory.
    The default docBase is webapp> that webapp> relative addressed as /images/image.gif but such is not the case.
    I have put the images directory almost everyplace possible with no luck.
    I have explicitly defined docBase in tomcat/conf/server.xml and still no
    luck.
    I currently have the following in conf/server.xml
    <Context path="/EformsAppWar"
    docBase="c:/tomcat/webapps/EformsAppWar"
    crossContext="true"
    debug="0"
    reloadable="true" >
    </Context>
    I place images in that directory structure but still take 404's and in
    the log it refers to context as /images ????
    I'm probably doing something (or not doing something) foolish. Anybody> have a remedy.
    <a href="/group/SunONE-JATO/post?protectID=210083235237078198050118178206047166215146166214017110250006230056039126077176105140127082088124241215002153">[email protected]</a>
    <a href="/group/SunONE-JATO/post?protectID=210083235237078198050118178206047166215146166214017110250006230056039126077176105140127082088124241215002153">[email protected]</a>

    First of all David you are faster responding to email than I am. Thanks.
    We tried your scheme with no luck. You are using "ROOT" as your war file
    name ROOT, correct? Are you sure the jsp would reference
    "/images/MyProject/nppnback.gif"? Why is "MyProject" in there? Where is
    the directory "images" defined to Tomcat? Is it a default?
    Here's another try at explaining:
    In my JSP I have;
    <IMG SRC="/images/ef.gif" ALT=People Banner">
    My application is in webapps/EformsAppWar
    (jsps in EformsAppWar/EformsApp/eforms/*.jsp)
    (classes in EformsAppWar/WEB-INF/classes)
    so images are in webapps/EformsAppWar/images
    and there is, indeed a ef.gif there.
    However with no server.xml changes (everything default), Tomcat 3.2
    gives a 404 in his log and states in the 404 message that context is
    null (CTX < >) and ca't find /images/ef.gif + NULL.
    By the way I just noticed that in Tomcat 3.1 I have the images directory
    directly under webapps.
    ----- Original Message -----
    From: "David J.L. Martin" <<a href="/group/SunONE-JATO/post?protectID=114166018056146134184102046176231239071179066034">dave@t...</a>>
    Date: Wednesday, May 23, 2001 3:35 pm
    Subject: Re: [iPlanet-JATO] Tomcat 3.2 serving images and html?
    This works:
    If the doc root is webapps\ROOT --
    Using defaults...jsp's would be put in
    webapps\ROOT\MyProjectApp\MyProject\*.jsp
    and images would be put in webapps\ROOT\images\*.gif
    Then in your jsp...use the following reference:
    "/images/MyProject/nppnback.gif">
    That will work just using defaults and not playing with any of the
    config files...
    ie. webapps\ROOT\WEB-INF gets updated as well (with required
    classes).
    djm
    TechPie
    916 924-1832 (office)
    916 730-4743 (mobile)
    916 313-3531 (fax)
    <a href="/group/SunONE-JATO/post?protectID=114232044112042209130232046248130100239179057215113109152006048067">dmushrush@e...</a> wrote:
    Many of you are running Tomcat 3.2. Can anyone tell me how to get
    images to be served by Tomcat. In 3.1 if I referenced /images/image.gif> in my JSP, I could just place the images
    directory in the application
    (context) directory.
    The default docBase is webapp> that webapp> relative addressed as /images/image.gif but such is not the case.
    I have put the images directory almost everyplace possible with no luck.
    I have explicitly defined docBase in tomcat/conf/server.xml and still no
    luck.
    I currently have the following in conf/server.xml
    <Context path="/EformsAppWar"
    docBase="c:/tomcat/webapps/EformsAppWar"
    crossContext="true"
    debug="0"
    reloadable="true" >
    </Context>
    I place images in that directory structure but still take 404's and in
    the log it refers to context as /images ????
    I'm probably doing something (or not doing something) foolish. Anybody> have a remedy.
    <a href="/group/SunONE-JATO/post?protectID=210083235237078198050118178206047166215146166214017110250006230056039126077176105140127082088124241215002153">[email protected]</a>
    <a href="/group/SunONE-JATO/post?protectID=210083235237078198050118178206047166215146166214017110250006230056039126077176105140127082088124241215002153">[email protected]</a>

  • Problem with JTextPane and StateInvariantError

    Hi. I am having a problem with JTextPanes and changing only certain text to bold. I am writing a chat program and would like to allow users to make certain text in their entries bold. The best way I can think of to do this is to add <b> and </b> tags to the beginning and end of any text that is to be bold. When the other client receives the message, the program will take out all of the <b> and </b> tags and display any text between them as bold (or italic with <i> and </i>). I've searched the forums a lot and figured out several ways to make the text bold, and several ways to determine which text is bold before sending the text, but none that work together. Currently, I add the bold tags with this code: (note: messageDoc is a StyledDocument and messageText is a JTextPane)
    public String getMessageText() {
              String text = null;
              boolean bold = false, italic = false;
              for (int i = 0; i < messageDoc.getLength(); i++) {
                   messageText.setCaretPosition(i);
                   if (StyleConstants.isBold(messageDoc.getCharacterElement(i).getAttributes()) && !bold) {
                        bold = true;
                        if (text != null) {
                             text = text + "<b>";
                        else {
                             text = "<b>";
                   else if (StyleConstants.isBold(messageDoc.getCharacterElement(i).getAttributes()) && bold) {
                        // Do nothing
                   else if (!StyleConstants.isBold(messageDoc.getCharacterElement(i).getAttributes()) && bold) {
                        bold = false;
                        if (text != null) {
                             text = text + "</b>";
                        else {
                             text = "</b>";
                   try {
                        if (text != null) {
                             text = text + messageDoc.getText(i,1);
                        else {
                             text = messageDoc.getText(i, 1);
                   catch (BadLocationException e) {
                        System.out.println("An error occurred while getting the text from the message document");
                        e.printStackTrace();
              return text;
         } // end getMessageText()When the message is sent to the other client, the program searches through the received message and changes the text between the bold tags to bold. This seems as if it should work, but as soon as I click on the bold button, I get a StateInvariantError. The code for my button is:
    public void actionPerformed(ActionEvent evt) {
              if (evt.getSource() == bold) {
                   MutableAttributeSet bold = new SimpleAttributeSet();
                   StyleConstants.setBold(bold, true);
                   messageText.getStyledDocument().setCharacterAttributes(messageText.getSelectionStart(), messageText.getSelectionStart() - messageText.getSelectionEnd() - 1, bold, false);
         } //end actionPerformed()Can anyone help me to figure out why this error is being thrown? I have searched for a while to figure out this way of doing what I'm trying to do and I've found out that a StateInvariantError has been reported as a bug in several different circumstances but not in relation to this. Or, if there is a better way to add and check the style of the text that would be great as well. Any help is much appreciated, thanks in advance.

    Swing related questions should be posted in the Swing forum.
    Can't tell from you code what the problem is because I don't know the context of how each method is invoked. But it would seem like you are trying to query the data in the Document while the Document is being updated. Try wrapping the getMessageText() method is a SwingUtilities.invokeLater().
    There is no need to write custom code for a Bold Action you can just use:
    JButton bold = new JButton( new StyledEditorKit.BoldAction() );Also your code to build the text String is not very efficient. You should not be using string concatenation to append text to the string. You should be using a StringBuffer or StringBuilder.

  • A working method to load local PDF and HTML files on iOS

    I had a lot of trouble getting this to work, and I'm hoping this post saves someone time. Some of the information that's been posted in other locations is either wrong, incomplete, or might only work on Android. By the time you read this message the information here may no longer be accurate, so here's the testing environment:
    Window 7
    Flash CS 5.5.0
    AIR 2.7.0.19530, which was compiled on June 28, 2011
    iPad 1, version 4.3.5 of iOS
    Let's get started.
    On iOS, you load external PDF and HTML files using the StageWebView class.
    On Windows, StageWebView works but the HTMLLoader class is a better choice if you're creating a desktop app.
    You can also load HTML files by reading in the file's text. The information in this post is only for loading external HTML files.
    StageWebView will not load a file that's in File.applicationDirectory. All files bundled in your app are placed in File.applicationDirectory, which means you'll have to copy any external file you wish to load with StageWebView to another directory.
    So where can you copy your file? File.applicationStorageDirectory won't work. File.documentsDirectory does work.
    Several people have recommended copying to a temporary file using File.createTempFile(). This works, but there's a catch: it seems that, like Windows, StageWebView relies on a file's extension when determining how to load it. When you create a temporary file on iOS using File.createTempFile(), the file will have no extension (and on Windows, File.createTempFile() creates a file with the extension .tmp, which is equally problematic).
    The solution to the file extension problem is to rename the temporary file by appending the original file's extension. AIR currently does not have a <file>.rename() function, so you'll have to do it using <tempFile>.moveTo().
    Here's some code I've successfully tested several times on both iOS and Windows. The file is copied to the temp directory. The file's extension is restored by just slapping the original file name to the end of the temp file.
            private function loadExternalFile():void
                var webView = new StageWebView();
                webView.stage = this.stage;
                webView.viewPort = new Rectangle( 0, 0, 1024, 555 );
                // Works with either html or pdf files.
                // These are stored in the root of the application directory.
                var fileName:String = "euei.pdf";
                //var fileName:String = "euei.htm";
                var sourceFile = File.applicationDirectory.resolvePath( fileName );
                var workingFile = File.createTempFile();
                try
                    sourceFile.copyTo( workingFile, true );
                    // You have to rename the temp file
                    var renamedTempFile:File = workingFile.resolvePath(workingFile.nativePath + fileName);
                    workingFile.moveTo(renamedTempFile, true);
                    webView.loadURL( renamedTempFile.url );
                catch (err:Error) { }

    I tried this with Flash CS5.5 and AIR 4.0 SDK. Any pdf loaded simply fills the viewPort with black. Also tested with a png version of the pdf and that displayed just fine.
    What's the purpose of copying to a temp work file? I found that webView.loadURL( sourceFile.url ); gave me the exact same results.
    Any ideas?
    Thanks!

  • How to read text from PDF and HTML

    I have got solution to read text form .txt file but did'nt get code for PDF and HTML.
    I dont want to convert PDF to txt.
    Please help me ...

    reading from a file is always the same. using the same strategy used for a .txt will allow you to read a .pdf file.
    Offcourse in itself it will be useless becuase pdf files have a special internal structure.
    html files are identical to txt files.
    What are you trying to accomplisch with the files you are reading ?

  • How to read data from PDF and HTML  file

    I have got solution to read text form .txt file but did'nt get code for PDF and HTML.
    I dont want to convert PDF to txt.
    Please help me ...

    ah crap i could have guessed there would be a crosspost only the forum in where the crosspost is made is abit funny
    To OP: DO NOT CROSSPOST
    http://forum.java.sun.com/thread.jspa?threadID=5267875&tstart=0

  • I am in the process of expanding a database of chemistry journal articles.  These materials are ideally acquired in two formats when both are available-- PDF and HTML.  To oversimplify, PDFs are for the user to read, and derivatives of the HTML versions a

    I am in the process of expanding a database of chemistry journal articles.  These materials are ideally acquired in two formats when both are available-- PDF and HTML.  To oversimplify, PDFs are for the user to read, and derivatives of the HTML versions are for the computer to read.  Both formats are, of course, readily recognized and indexed by Spotlight.  Journal articles have two essential components with regards to a database:  the topical content of the article itself, and the cited references to other scientific literature.  While a PDF merely lists these references, the HTML version has, in addition, links to the cited items.  Each link URL contains the digital object identifier (doi) for the item it points to. A doi is a unique string that points to one and only one object, and can be quite useful if rendered in a manner that enables indexing by Spotlight.  Embedded URL's are, of course, ignored by Spotlight.  As a result, HTML-formatted articles must be processed so that URL's are openly displayed as readable text before Spotlight will recognize them.  Conversion to DOC format using MS Word, followed by conversion to RTF using Text Edit accomplishes this, but is quite labor intensive.
      In the last few months, I have added about 3,500 articles to this collection, which means that any procedure for rendering URL's must be automated and able to process large batches of documents with minimal user oversight.  This procedure needs to generate a separate file for each HTML document processed. Trials using Automator's "Get Specified Finder Items" and "Get Selected Finder Items", as well as "Ask For Finder Items"  (along with "Get URLs From Web Pages") give unsatisfactory results.  When provided with multiple input documents, these three commands generate output in which the URLs from multiple input items are merged into a single block, which yields a single file using "Create New Word Document" as the subsequent step.  A one-to-one, input file to output file result can be obtained by processing one file at a time, but this requires manual selection of each item and one-at-a-time processing. What I need is a command that accepts multiple input documents, but processes them one at a time, generating a separate output for each file processed.  Is there a way for Automator to do this?

    Hi,
    With the project all done, i'm preparing for the presentation. Managed to get my hands on a HD beamer for the night (Epason TW2000) and planning to do the presentation in HD.
    That of course managed to bring up some problems. I posted a thread which i'll repost here . Sorry for the repost, i normally do not intend to do this, but since this thread is actually about the same thing, i'd like to ask the same question to you. The end version is in AfterEffects, but that actually doesn't alter the question. It's about export:
    "I want to export my AE project of approx 30 min containing several HD files to a Blu Ray disc. The end goal is to project the video in HD quality using the Epson  EMP-TW2000 projector. This projector is HD compatible.
    To project the video I need to connect the beamer to a computer capable of playing a heavy HD file (1), OR burn the project to a BRD (2) and play it using a BRplayer.
    I prefer option 2, so my question is: which would be the preferred export preset?
    Project specs:
                        - 1920x1080 sq pix  (16:9)
                        - 25 fps
                        - my imported video files (Prem.Pro sequences) are also 25 fps and are Progressive (!)
    To export to a BRD compatible format, do i not encounter a big problem: my projectfiles are 25 fps and progressive, and I believe that the only Bluray preset dispaying 1920x1080 with 25 fps requests an INTERLACED video  (I viewed the presets found on this forum, this thread)... There is also a Progr. format, BUT then you need 30 fps (29,...).
    So, is there one dimension that can be changed without changing the content of the video, and if yes which one (either the interlacing or the fps).
    I'm not very familiar with the whole Blu-ray thing, I hope that someone can help me out."
    Please give it a look.
    Thanks,
    Jef

  • Generate pdf and html(urgent)

    can anybody tell how to generate pdf and html from a single report,
    thanks in adv

    From a single report, you can generate outputs to html, htmlcss, pdf, rtf, XML and text formats.
    If you use rwclient, rwrun or rwservlet methods, specify desformat=pdf/html and the destination file name in desname command line parameters.
    If you use Reports Builder, open a report, select File->Generate to file and select html/pdf. Then give the file name.
    For more details, Refer to Reports Tutorial / Publishing Reports document from this site.
    http://otn.oracle.com/docs/products/reports/content.html
    Thanks,
    The Oracle Reports team

Maybe you are looking for

  • Simple button link

    I'm trying not to cry. I feel like I've been totally blindsided by ActionScript 3.0. All I want to do is add a freakin link to a website on a button. I can't find any simple tutorials. Please will someone help me? Either with a sample code snippit or

  • Urgent help needed - deadline - iDVD project suddenly gone corrupt?

    Ive literally finished and ironed out the problems Ive had with a big Dual Layer project Ive been working on for 2 weeks. Yesterday I successfully burned a project to DVD - and I had not been having any problems. Then suddenly I tried another burn la

  • Very urgent :how I order by my report within the report option not change i

    Hi master Sir I design the report but I need my report order by cheq_no now my report order by voucher no but If I change in query then my format must be change that very problem for me I again design Is any option in report through which I order by

  • BAPI or RFC for Automatic Forwarding

    Hallo. When I create a user, I set the automatic forwarding from the SAP inbox username to mail. I make this setting using SO36. Is there a Bapi or RFC to make this? Thanks for your help. Mario Any news about my issue? Thanks.

  • Help on Organzational Structures / Units / Elements at Country Level

    Hi Experts, We all know about organzational units / Structures / elments at client Level or at company code level etc etc. But can some expert please list out all (and I repeat all) Organzational Units / Elements / Structures at Country-Level. I will