How to center align text in JTextArea?
Solution 1
To center text you should use a JTextPane not a JTextArea. Centering text is a big issue.
It is better to solve the background problem with the JTextPane.
When using the Nimbus LAF it looks like you need to provide a custom Painter to just paint the background as a solid color. Check out this answer by @mKorbel. You would need to change the property tag. Also in the FillPainter I changed:
g.setColor(color);
g.setColor(object.getBackground());
Solution 2
Thanks .... Working ,,,, This is what I used ...
UIManager.getLookAndFeelDefaults().put("TextPane[Enabled].backgroundPainter", new FillPainter());`
public class FillPainter implements Painter<JComponent> {
@Override
public void paint(Graphics2D g, JComponent object, int width,int height) {
g.setColor(object.getBackground());
}
}
Er Kaushik Chakraborty
Updated on July 12, 2022Comments
-
Er Kaushik Chakraborty almost 2 years
I have requirement of Text wrapping + Text Centering + Nimbus Look and Feel + with a background color black.
I tried out with the following 2 components
1. JTextPane
-------supports: Text Wrapping + Text Centering using StyledDocument
-------issue : custom background color doesn't work Nimbus Look and Feel(be it disabled or enabled)
which is bug as show here http://bugs.sun.com/bugdatabase/view_bug.do;jsessionid=ab1938d61a7fd83ca2b54eb8df7?bug_id=6789980my jdk version is : 1.6.0_33
Fixes tried :UIManager.getLookAndFeelDefaults().put("TextPane.background", Color.RED);
but this also is unable to override the Nimbus default which is #d6d9df (214,217,223)
Can anyone help me with text Centering in the JTextArea? Thanks in advance1. JTextArea
-------supports: Text Wrapping + background coloring with Nimbus LnF (only when its enabled)
-------issue : Text Centering is an issue in here-
Mogli about 11 yearsstackoverflow.com/questions/3213045/… might help
-
Er Kaushik Chakraborty about 11 yearsyes it works's but with JTextPane only and not with JTextArea. I need to solve my problem with JTextArea only (because the background color cannot be set in the JTextPane with Nimbus LnF). Didn't had any luck with that as of for now , :'(
-
-
Er Kaushik Chakraborty about 11 yearsThanks .... Working ,,,, This is what I used ...
UIManager.getLookAndFeelDefaults().put("TextPane[Enabled].backgroundPainter", new FillPainter());
<br><br>public class FillPainter implements Painter<JComponent> { @Override public void paint(Graphics2D g, JComponent object, int width, int height) { g.setColor(object.getBackground()); } }