Link to home
Start Free TrialLog in
Avatar of dineth
dinethFlag for United States of America

asked on

Centering Text in a TextArea

Hi Experts !!

I got an Applet with a BorderLayout which as a TextArea added to CENTER region. I wanna center text which is placed in the TextArea.

Could this be done ?? I tried to FontMetrics & used stringWidth() method to obtain the width of the string & performed a simple calculation to get the center of the TextArea but, it failed.

I'm using an AWT TextArea.

ThankX.
--Din--

ASKER CERTIFIED SOLUTION
Avatar of Mick Barry
Mick Barry
Flag of Australia image

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

you have to implement your own widget (or use some ready-made)
I don't know if u can do it in a text filed.
But u can surely do it in an applet.

There is a good book on JAVA applets for startups.
The title is "JAVA Complete Reference".

I have faced this problem before with an applet.
There is a good description of how to center text in an applet.
Try to get access to that book.


ps:i think you can do it in JTextArea
I dont think that can be done. I reviewed the textarea api to do this, but there were no clues. Maybe you can make some method that gives this appearance to the textarea.
I will try to write some code and send you the results.
Well... I don't know of any attributes you can set in a JTextArea to center text.  But you've got a couple of options.  You can either try to do something with a JTextField and call setHorizontalAlignment(JTextField.CENTER_ALIGNMENT), or you can insert text into the JTextArea with HTML.  If you use HTML, it'd look like this -

myTextArea.setText("<HTML><CENTER>Here is my text.</CENTER></HTML>");

I'll see if I can find anything else though.  Good luck!

allie
OK, the only other thing I found also used FontMetrics, but didn't have anything about stringWidth(), so maybe this is a better way.  Check out the following web site - it explains how to use FontMetrics to center text:

http://leepoint.net/notes/javanotes/30GUI/60fonts/18font.html

(By the way, the parent site is EXTREMEMLY useful.  URL is http://leepoint.net/notes/javanotes/)

Good luck!

allie


Avatar of dineth

ASKER

Thanks guys !! thanks a lot !!
thanks for the link Allie.

--Din--
You're welcome!  I take it the code at the link worked then?

allie
Not sure exactly how FontMetrics can help you.
Isn't the actual painting of the text handled by the peer?
Hi,

If you want to use TextArea, you have 2 options:
- Put TextArea into Panel and let panel center TextArea (by default, TextArea.getPreferredSize() returns text width, and Panel uses FlowLayout which will center single component)
- Use fixed width font in the TextArea and put spaces around your text to center it.

Regards,
Igor Bazarny,
Brainbench MVP for Java 1
> Put TextArea into Panel and let panel center TextArea

Will that centre align the text?
I would have thought it would just align the component in the middle of the panel.
> Will that centre align the text?
> I would have thought it would just align the component in the middle of the panel.

Yes, but text is shown inside that centered component, so visual effect would be left-justified text centered in applet (with TextArea border around)
No comment has been added lately, so it's time to clean up this TA.

I will leave a recommendation in the Cleanup topic area that this question is:

- points to objects

Please leave any comments here within the
next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER !

girionis
Cleanup Volunteer