Text/Html JTextPane not rendering properly when pasting formatted text - java

I'm using a JTextPane with content type of text/html, but whenever I copy a formatted text from MS Word and pastes it on the textpane it doesn't get formatted or displays properly.
Some of the tags are being displayed like boxes.
I wanted to attach an image but I couldn't cos my reputation isn't up to 10 yet.
Please help me with this.
Thanks.

It's a common mistake. You need to set :
((HTMLDocument)myJTextPane.getDocument()).setPreservesUnknownTags(false);
//considering that you already equipped yout JTextPane with an HTMLDocument.
//Note that HTMLEditorKit automatically installs one.
I believe that's enough to fix your issue.

Related

How to change the color of a selected text in a JEditorPane?

I am currently developing a program that allows you to change the color of a selected text from a JEditorPane, using setSelectedTextColor (Color.red), but it only temporarily changes the text when I run it with the cursor.
I would like to know how I can set it or change it, as well as the setForeground
Maybe this post can help you: Changing color of selected text in jTextPane
This use jTextPane instead of jEditorPane, which I've searched for and says that supports color changes better than jEditorPane.
If that doesn't works, please search in Google for your question and if you find it, we will appreciate you post it here. Thanks.

JEditorPane in html mode cuts last empty space when using setText

I have set my JEditorPane to use the text/html kit. If I try to setText("hey ") for example (note the space after 'hey'), the editor pane displays just "hey", there is no space after. Does somebody know how I can solve this?
Why are you worried about this?
If you want simple unformatted text to be displayed, then use a JTextArea or JTextPane.
A JEditorPane is used to "format" text so it will parse the data and may remove unwanted characters.
If you want to force a space when using HTML then you can use:
editor.setText("hello&nbsp");

JtextField shows text only on text selection

Currently am working on applets where JTextField is used.But for some reason
sometimes the textfield doesn't display the text.Only when I try to select the text from the empty text box then it displays text.
Before
After
I am using netbeans for coding.Tried some properties from properties tab of that component but no much help.
Can any one guess the issue?
Thanx Guys,I got the answer it was another text box behind this one that caused loading problem.
Thanx a lot for support.
problem solved!
you need to put the JTextfield.value equal to the value given. e.g: String bla = JTextfield.value. normally, that should be fixing it

Making words different colors in JTextField/JTextPane/?

I'm trying and failing to understand how to use Java's text editor components to colorize text as you insert it. I don't want or need a fully featured syntax highlighting library.
Basically, I have a JTextField (or some other JText... component), and a list of words. I want any words in the field that appear in the list to be red, and the rest of the words be green. So for example, if "fire" is in the list, "fir" would appear green and "fire" would appear red.
I've tried using a JTextPane and a DefaultStyledDocument, using a KeyListener to go over the text in the document and using AbstractStyledDocument.replace to replace the existing words with versions that have the correct attributes. This didn't do anything. What am I doing wrong?
Neither JTextPane nor JTextField isn't able to present formatted text, i.e text having more than one format. For text-editor-like capabilities like you'd find in WordPad or HTML, the component to use is the JEditorPane or its descendant, JTextPane.
The simplest thing you can do is set the ContentType of the JEditorPane to "text/html" and simply set its text to a string containing HTML. The Java structured text components are surprisingly competent with HTML; you can display tables and/or DIVs, and there is support for much of CSS2. Simplest to do your styles inline, but you can even do external style hrefs.
If you want to get fancy programmatically, you can access the DocumentModel and create text from spans of text each having their own formatting. The DocumentModel works essentially like a programmable text editor.
EDIT: Re-reading your question, I see my answer doesn't quite address it. Since you want multi-colored text JEditorPane is your only option; but rather than just piping in pre-colored text via HTML or such, you'll have to put a listener on your document model to catch changes introduced when you type; and after every document change you'll want to examine the text (again from the Document model) for text that should or should not be highlighted, and you'll want to apply formatting to certain runs of text.
There are devils in the details, but this should get you started.

Mix of Arabic and English causes problems in JTextArea (Java)

I have a JTextArea which displays HTML of an Arabic web page. So it's essentially a mix of English and Arabic. In the JTextArea, with columns set to 30, certain text just disappears instead of wrapping properly. The weird thing is that if I copy the invisible text and paste it into Notepad, then I can see it in Notepad. If I change the number of columns to 40, everything displays fine. Any ideas?
See this screenshot of the problem:
Elie, thanks for the response. Not sure I explained the problem properly though. On the left in the screenshot is the JTextArea. On the right is the selection from the JTextArea pasted into Notepad. Does this make more sense now?
Is it the 30th character which is disappearing? It's possible due to the script that the JTextArea cannot render the Arabic characters properly. So it's counting the characters correctly, but doesn't realize that they take up more space. Support for such fonts is not great, so you may want to write a custom renderer for your JTextArea to deal with this (so you can manually take into account the proper amount of space required per character in Arabic and adjust the line wrap accordingly).

Categories