<Swing Dev> TextArea's/TextField's enableInputMethods is not working on linux

Naoto Sato naoto.sato at oracle.com
Thu May 26 19:18:56 UTC 2011


It simply sounds like a bug to me. The behavior should not be different.

Naoto

(5/26/11 12:25 AM), Sean Chou wrote:
> Hi all,
>
>     I found TextArea's/TextField's enableInputMethods is not working on
> linux,
> even enableInputMethods(false) is invocated, the input method can still be
> enabled.  The testcase is as follows:
>
> /*
>   * ImfAWTTest.java
>   */
> import java.awt.Component;
> import java.awt.Dimension;
> import java.awt.FlowLayout;
> import java.awt.Frame;
> import java.awt.TextArea;
> import java.awt.TextField;
> import java.awt.event.WindowAdapter;
> import java.awt.event.WindowEvent;
>
> import javax.swing.JTextArea;
> import javax.swing.JTextField;
>
>
> public class ImfAWTTest extends Frame {
> Component c;
> public ImfAWTTest() {
> super("Single Frame --- AWT Frame");
> // set layout here.
> setLayout(new FlowLayout());
> // add components here.
> c = new TextArea("TextArea component(No IM)");
> c.enableInputMethods(false);
> c.setPreferredSize(new Dimension(400, 100));
> add(c);
>
> c = new JTextArea("JTextArea component");
> c.enableInputMethods(true);
> c.setPreferredSize(new Dimension(400, 100));
> add(c);
>
> c = new TextField("TextField component(No IM)",52);
> c.enableInputMethods(false);
> add(c);
>
> c = new JTextField("JTextField component(No IM)");
> c.enableInputMethods(false);
> c.setPreferredSize(new Dimension(400, 20));
> add(c);
> addWindowListener(new WindowAdapter() {
> public void windowClosing(WindowEvent event) {
> System.exit(0);
> }
> });
> setSize(850, 360);
> setVisible(true);
> }
> public static void main(String[] args) {
> new ImfAWTTest();
> }
> }
>
>
> Reproduce steps are:
> 1. On linux system, run the testcase with b143.
> 2.  Click 'TextArea component(No IM)'.
> 3. Switch Ime window, and type some characters into it
>
> Expectation:
>    IME cannot be enabled.
> Result:
>    IME can be used to input.
>
>
> Investigation:
>     This behavior was developed when Java was using Motif library,
> however Java7's
> TextArea/TexField does not use Motif any more, so enableInputMethods doesn't
> work.
>
>
>     I suppose we need to update the specification about the behavior.
> Any comments?
>
>
> --
> Best Regards,
> Sean Chou
>




More information about the swing-dev mailing list