JTextField & JTextArea 输入中文时会出现一个多余的浮动窗口 rtSwing 程序,怎样把那个浮动窗口隐藏?(客户端的rt包动不了) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那应该是输入法的,或许这是java的一个小问题,别管它了,要不你改其它的,比如SWT开发 不是输入法的,,,只要一输入中文,就会有一个多余的浮动窗口不知大家注意到没,,在JTextArea里输入中文试试就知道了,很讨厌的东东…… 这个小窗口是JAVA为了适应各个国家的语言输入做的一个东西。反正是看着不爽。而且在使用智能拼音这类输入法时,输入过多的字符,会引发虚拟机的崩溃。楼主可以亲自试试。而且这个东西跟jdk,jre的版本有关系,某些jdk,jre版本在使用过程中就不会出现,某些会出现。你可以选择使用awt,这样就不会有那个输入窗口。然后你也可以这么试试public class MyTextField extends javax.swing.JTextField { public InputMethodRequests getInputMethodRequests() { return null; }}这样也是会隐藏起来。但是这样做,不能确定会不会对你的程序带来什么?比如不稳定或是其他什么问题。所以使用起来需要谨慎。 /* * 以下方法用于解决java中输入法出现多余的输入窗口问题 * * 方法1 在命令行中加入参数 * java -Djava.awt.im.style=no-spot 这样不需要改程序,是个比较完善的解决方法。 * * 方法2 直接设置系统参数 * System.setProperty( "java.awt.im.style", "no-spot" ); * * 方法3通过反射修改类的static 字段 * try { * Class iClass = Class.forName("sun.awt.im.InputMethodContext"); * * Field field = iClass.getDeclaredField("belowTheSpotInputRequested"); * AccessibleObject.setAccessible(new AccessibleObject[] { field }, true); * field.setBoolean(null, false); * } catch (SecurityException e) { * e.printStackTrace(); * } catch (NoSuchFieldException e) { * e.printStackTrace(); * } catch (ClassNotFoundException e) { * e.printStackTrace(); * } catch (IllegalArgumentException e) { * e.printStackTrace(); * } catch (IllegalAccessException e) { * e.printStackTrace(); * } * */ 简单的抛硬币问题?不知错在哪了? Object中clone()的使用问题 代码的异常,请高手帮看看 100分问数据库连接该怎样关闭 高分求解 一个包里面是不是不能有多个类? 请大家给个建议! 关于继承的问题。。。。。 java连接mySQL数据库的问题,连接数据库什么的都没问题,但插入数据的操作运行不了!!不知道什么原因,求大神赐教!!!感激涕零!! 新手求教 多线程问题 有没有办法屏蔽Swing的文本编辑组件跳出的“输入窗口”? swing中有类似iframe的控件么
不是输入法的,,,只要一输入中文,就会有一个多余的浮动窗口
不知大家注意到没,,在JTextArea里输入中文试试就知道了,很讨厌的东东……
反正是看着不爽。而且在使用智能拼音这类输入法时,输入过多的字符,会引发虚拟机的崩溃。楼主可以亲自试试。
而且这个东西跟jdk,jre的版本有关系,某些jdk,jre版本在使用过程中就不会出现,某些会出现。你可以选择使用awt,这样就不会有那个输入窗口。
然后你也可以这么试试public class MyTextField extends javax.swing.JTextField {
public InputMethodRequests getInputMethodRequests() {
return null;
}
}
这样也是会隐藏起来。
但是这样做,不能确定会不会对你的程序带来什么?比如不稳定或是其他什么问题。所以使用起来需要谨慎。
* 以下方法用于解决java中输入法出现多余的输入窗口问题
*
* 方法1 在命令行中加入参数
* java -Djava.awt.im.style=no-spot 这样不需要改程序,是个比较完善的解决方法。
*
* 方法2 直接设置系统参数
* System.setProperty( "java.awt.im.style", "no-spot" );
*
* 方法3通过反射修改类的static 字段
* try {
* Class iClass = Class.forName("sun.awt.im.InputMethodContext");
*
* Field field = iClass.getDeclaredField("belowTheSpotInputRequested");
* AccessibleObject.setAccessible(new AccessibleObject[] { field }, true);
* field.setBoolean(null, false);
* } catch (SecurityException e) {
* e.printStackTrace();
* } catch (NoSuchFieldException e) {
* e.printStackTrace();
* } catch (ClassNotFoundException e) {
* e.printStackTrace();
* } catch (IllegalArgumentException e) {
* e.printStackTrace();
* } catch (IllegalAccessException e) {
* e.printStackTrace();
* }
*
*/