<Swing Dev> RFR: 4710675: JTextArea.setComponentOrientation does not work with correct timing
Alexander Zvegintsev
azvegint at openjdk.java.net
Mon Feb 22 13:33:42 UTC 2021
On Mon, 22 Feb 2021 09:45:31 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
> It is seen JTextArea.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT) orientation is not honoured if it is called after setText() and remain at LTR orientation. It changes the orientation only if some more text is typed additionally to existing text.
> This behaviour is different from JTextField where the RTL orientation is honoured from start.
> Proposed fix is to check for ComponentOrientation propertyChange event and set i18n property if it is not set, so that orientation is honoured as soon as setComponentOrientation() is called.
> Checked for all L&Fs in all supported platforms.
src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java line 1908:
> 1906: if ("focusAccelerator" == propertyName) {
> 1907: updateFocusAcceleratorBinding(true);
> 1908: } else if ("componentOrientation" == propertyName) {
It is not a part of the fix, but shouldn't we use `equals()` instead of `==` for String comparison?
Please also update the copyright year.
test/jdk/javax/swing/JTextArea/JTextAreaOrientationTest.java line 48:
> 46: static Rectangle bounds;
> 47:
> 48: public static boolean compareBufferedImages(BufferedImage bufferedImage0, BufferedImage bufferedImage1) {
We could probably reuse `Util.compareBufferedImages()` from `regtesthelpers` here.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2673
More information about the swing-dev
mailing list