<Swing Dev> Unable to view focus in Non-Editable Text Area

Neil Richards neil.richards at ngmr.net
Fri Dec 2 09:18:06 UTC 2011


On Wed, 2011-04-13 at 16:54 +0800, Sean Chou wrote:
> Hi all,
> 
> 
> I found a similar bug was reported for JTextArea.
>  http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4512626
> 
> 
> That bug is about JTextArea, while this is about TextArea behavior
> difference.
> 
> 
> It seems showing a caret is a general way to address this kind of
> accessibility.
> So I made a simple patch.
> 
> 
> diff -r 554adcfb615e src/solaris/classes/sun/awt/X11/XTextAreaPeer.java
> --- a/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java	Wed Mar 16 15:01:07 2011 -0700
> +++ b/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java	Fri Mar 18 16:31:56 2011 +0800
> @@ -664,6 +664,8 @@
>      class XAWTCaret extends DefaultCaret {
>          public void focusGained(FocusEvent e) {
>              super.focusGained(e);
> +            // Make sure the cursor in visible in case of non-editable TextArea
> +            super.setVisible(true);
>              getComponent().repaint();
>          }
>  
> 
> 
> 
> 2011/4/1 Sean Chou <zhouyx at linux.vnet.ibm.com>
>         Hi,
>            I find that if a TextArea is set to un-editable on linux
>         system, the customer will be
>         unable to view the focus when the TextArea gets focused(eg.
>         clicked). On 
>         windows, the cursor is blinking when the un-editable TextArea
>         get the focus.
>         So linux users may get confused when trying to move the focus
>         to the TextArea
>         because no visible feedback is given.
>         
>         
>            I think it will be better if TextArea behaves the same as
>         it is on windows.
>         Here is a simple testcase:
>         
>         
>         import java.awt.TextArea;
>         import javax.swing.JButton;
>         import javax.swing.JFrame;
>         import javax.swing.JPanel;
>         import javax.swing.JTextArea;
>         
>         
>         public class NonEditable {
>         public static void main(String[] str) {
>         JFrame jf = new JFrame();
>         JButton jb = new JButton("click");
>         JPanel jp = new JPanel();
>         jf.setSize(200, 200);
>         JTextArea jt = new JTextArea(3, 3);
>         jf.getContentPane().add(jp);
>         jp.add(jb);
>         jp.add(jt);
>         jf.setVisible(true);
>         jt.setText("hello how r u");
>         jt.setEditable(false);
>         TextArea ta = new TextArea(6, 10);
>         ta.setText("Rajesh kumar");
>         ta.setEditable(false);
>         jp.add(ta); 
>         }
>         }
>         
>         
>         
>         -- 
>         Best Regards,
>         Sean Chou
>         
> 
> 
> 
> -- 
> Best Regards,
> Sean Chou
> 

Hi Sean,
As your observation is about an AWT object (rather than a Swing one), I
think it best to raise this on the 'awt-dev' list.

I've cc'd this list so the folk there can consider your suggestion.

Regards, Neil

-- 
Neil Richards <neil.richards at ngmr.net>
IBM




More information about the swing-dev mailing list