`
Danker.Dai
  • 浏览: 68519 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java Swing 文本框输入中文弹出输入窗口的解决

阅读更多

java Swing 里面的文本框在输入的时候会弹出一个“输入窗口”,这个窗口让人看起来很不爽,而且有如下几个bug:

1. 在某些版本的jvm下,有很多层的模式对话框的时候,最上面正在使用模式对话框可能会被隐藏,导致找不到该对话框。

2. 在该“输入窗口”输入太多字符会导致jvm崩溃

有什么好的办法去掉这个“输入窗口”呢。


其实这个问题出在jre rt.jar 中的sun.awt.im.InputMethodContext类
该类中有个 private static boolean belowTheSpotInputRequested;属性  尝试用xjad反编译该类我们可以看到以下代码:
static
{
    String s = (String)AccessController.doPrivileged(new GetPropertyAction("java.awt.im.style", null));
    if (s == null)
    {
        Toolkit.getDefaultToolkit();
        s = Toolkit.getProperty("java.awt.im.style", null);
    }


    belowTheSpotInputRequested = "below-the-spot".equals(s);
}

因为系统缺省的style属性是“below-the-spot” 所以会导致belowTheSpotInputRequested=true; 就会导致输入中文时出现小窗口

所以解决的办法
1.是在main函数中System.setProperty("java.awt.im.style","on-the-spot");
2.将belowTheSpotInputRequested直接设置为false,编译后放入rt.jar中即可

分享到:
评论
4 楼 lliiqiang 2014-07-16  
System.setProperty("java.awt.im.style","on-the-spot"); 有的时候需要输入下拉框必须这么做.
3 楼 canca 2012-08-13  
谢谢啊!!好使!
2 楼 saram 2010-11-11  
正好要解决这个问题,使用你提供的第一种方法,挺好的,谢谢了!
1 楼 meadlai 2010-09-27  
你好,这个Java的输入法小框,还有其它办法去掉吗?

相关推荐

    四种Java Swing日历组件

    1. **单击文本框弹出日历组件选择日期** 这种方式通常通过结合`JTextField`和自定义的日历对话框实现。用户点击文本框时,会弹出一个包含日历视图的对话框,用户可以在其中选择日期,然后选择的日期会显示在文本框...

    java调用swing生成柱状图

    Java Swing 是Java GUI(图形用户界面)库的一部分,用于创建桌面应用程序。在这个特定的问题中,我们需要使用Swing来创建一个图形界面,展示用户输入文件中字母的频率统计,以柱状图的形式呈现。以下是实现这一功能...

    java Swing 文件批量上传 DEMO 源代码

    JProgressBar可以用来显示上传进度,而JOptionPane则可以用于弹出警告或确认对话框。 总的来说,这个Java Swing 文件批量上传DEMO涵盖了Java GUI编程、文件I/O、网络编程、多线程以及用户交互等多个方面,对于初学...

    Java Swing 中文Api

    Swing还包含了诸如JOptionPane这样的对话框组件,用于弹出信息提示、确认对话或输入框。JTabbedPane允许在单个窗口中组织多个组件,而JSplitPane则可以实现窗口的分割,便于用户查看和操作多部分内容。 对于国际化...

    比较全的JavaSwing图形化界面编程,带你进入Java桌面编程世界。

    Swing的出现解决了这个问题,它提供了跨平台的、具有统一外观的组件,并且具有更好的可定制性和性能。 Swing库包括许多AWT组件的替代品,称为轻量级组件,因为它们不直接依赖于操作系统,而是由Java自身完全实现。...

    java swing学生请假系统

    Java Swing学生请假系统是一款基于Java GUI技术开发的桌面应用程序,主要面向高校或培训机构的学生和教师,用于管理和处理学生的请假申请。这个系统展示了如何利用Java的Swing库来构建一个功能完善的用户界面,同时...

    java swing url下载器

    在Java Swing中,我们通常会使用JFrame作为主窗口,然后添加各种组件如JButton(按钮)、JLabel(标签)、JTextField(文本框)等来构建用户界面。在这个特定的下载器中,可能有一个JTextField用于用户输入文件的URL...

    打字小游戏 java swing

    【标题】:“打字小游戏”是基于Java Swing开发的一款互动软件,旨在提高用户打字速度和准确性。通过游戏化的方式,使得学习打字变得更加有趣,同时也增强了用户对键盘布局的熟悉程度。 【描述】:这款打字小游戏...

    java swing 学习资料

    Swing 提供了装饰器模式,使得我们可以方便地为组件添加视觉效果,如JOptionPane用于弹出对话框,JOptionPane.showMessageDialog()方法可以创建一个简单的信息对话框。同时,Swing 还支持组件的可定制性,可以创建...

    Javaswing图书管理系统源码(含数据库脚本).zip

    Java Swing 是Java Foundation Classes (JFC) 的一部分,提供了丰富的图形用户界面组件,如按钮、文本框、表格等。Swing 具有轻量级、高度可定制的特点,使得开发者能够创建美观且交互性强的桌面应用程序。在这个...

    java swing简单开发实例

    或者,使用JOptionPane来弹出提示消息,告知用户操作的结果。 这个实例也可能是线程安全的,因为文件操作可能会耗时较长,如果在事件调度线程(Event Dispatch Thread,EDT)上执行,将阻塞用户界面的更新。因此,...

    g3图书管理系统_JavaSwing_javaswing图书_

    6. 异常处理:为了提高系统的健壮性,开发过程中应考虑异常处理,如当数据库连接失败或数据操作异常时,JavaSwing可以弹出错误消息框,向用户友好地反馈问题。 总结来说,“g3图书管理系统”是JavaSwing技术在实际...

    java swing基础教程

    开发者可以通过这些类构建下拉菜单、弹出菜单,实现用户界面的交互功能。 5. **对话框** 对话框(JDialog)用于显示临时信息或进行用户交互。Swing提供了一些预定义的对话框,如JOptionPane,用于消息提示、确认...

    javaSwing初级入门知识

    总结来说,"javaSwing初级入门知识"涵盖了从基础组件的使用到高级特性的探索。IBM的教程是很好的学习资源,通过阅读和实践,初学者可以快速掌握Swing的基本操作,为构建自己的Java桌面应用打下坚实的基础。在学习...

    Java Swing登录资源管理器

    1. **用户界面**:Java Swing提供了诸如JFrame(主窗口)、JButton(按钮)、JLabel(标签)、JTextField(文本框)和JPasswordField(密码框)等组件,用于构建登录信息输入界面和数据展示区域。用户可以通过直观的...

    Java swing 开发的学生信息管理系统

    1. **Swing组件**:Swing提供了一系列组件,如JFrame(窗口)、JButton(按钮)、JLabel(标签)、JTextField(文本框)、JTextArea(文本区域)、JTable(表格)等,这些组件是构建GUI的基础。在这个项目中,例如,...

    Java+Swing聊天室

    在Java+Swing聊天室中,开发者需要捕获并适当地处理可能出现的网络错误、输入验证失败等异常情况。 10. **调试与测试**:开发过程中,使用调试工具对代码进行测试和调试是非常重要的。Java的IDE如Eclipse和IntelliJ...

    JavaSwing图书管理系统.zip

    7. **JOptionPane**:用于弹出对话框,如确认删除、错误提示等。 SSM框架在后台起着关键作用。Spring框架负责依赖注入(DI)和面向切面编程(AOP),使得代码更易于测试和维护。SpringMVC作为Spring的一部分,处理...

    Java+Swing+Txt实现自助款机系统

    在Java Swing中,开发者可以使用各种组件来构建用户界面,如JFrame(窗口)、JButton(按钮)、JLabel(标签)、JTextField(文本框)等。例如,在这个ATM系统中,可能会有一个JFrame作为主窗口,包含多个JButton...

    java swing简单记事本项目

    Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件和工具,用于构建桌面应用程序。在这个"java swing简单记事本项目"中,我们将深入理解如何利用Swing来创建一个基本的文本编辑器,即记事本程序...

Global site tag (gtag.js) - Google Analytics