`
hsw168
  • 浏览: 29447 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

如何去掉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中即可

 

  • 大小: 15.1 KB
  • 大小: 15.6 KB
分享到:
评论

相关推荐

    四种Java Swing日历组件

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

    java弹出模式窗口

    在Java编程中,弹出模式窗口(模态对话框)是一种常见的用户界面设计方法,它主要用于实现特定功能时需要用户进行临时交互的情况,例如登录验证、信息确认等场景。本文将详细介绍如何在Java Swing框架下创建一个简单...

    弹出式计算器

    这个程序的核心在于利用Java的图形用户界面(GUI)组件来创建一个可交互的弹出窗口,提供基本的计算功能。 在Java中,AWT(Abstract Window Toolkit)是最早的GUI库,提供了诸如按钮、文本框等基本组件。Swing是...

    Java Swing 中文Api

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

    老外用Swing开发的一些JAVA常用窗口编程组件源码.rar

    8. JOptionPane:对话框用于弹出信息、询问问题或获取用户输入,有多种类型,如信息对话框、警告对话框、确认对话框等。 Swing组件的使用通常涉及到事件监听和处理。例如,为按钮添加ActionListener,当按钮被点击...

    密码登录窗口含用户名密码输入

    - `JFrame` 是 Swing 中的一个顶层容器,用于表示应用程序的主要窗口。 - 方法介绍: - `setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);` 设置当用户关闭窗口时程序将退出。 - `setSize(int width, int height)...

    spring+swing的例子

    4. **模态对话框**:如 JDialog 和 JOptionPane,提供弹出式交互界面。 在整合 Spring 和 Swing 的应用中,我们通常会利用 Spring 的 DI 来管理 Swing 组件的生命周期,以及处理业务逻辑。例如,我们可以创建一个 ...

    swing聊天程序

    开发者可能还利用了`JOptionPane`来弹出对话框,进行用户交互,如显示欢迎信息或错误提示。 Swing聊天程序的实现通常涉及到以下关键技术点: 1. **事件监听**:Swing组件支持事件驱动编程,这意味着当用户执行某个...

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

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

    JAVA项目-基于swing实现的图书库存管理系统

    在本项目中,开发者可能利用了JFrame作为主窗口,JTable用于显示图书信息,JOptionPane用于弹出对话框提示用户操作结果。 图书库存管理系统的功能模块主要包括: 1. 新增图书:用户可以通过输入书名、作者、出版社...

    基于Swing的文件操作

    当用户点击按钮时,会弹出文件选择对话框,允许用户选择多个文件。所选文件将被合并到一个名为"mergedFile.txt"的新文件中。 总结,基于Swing的文件操作实例展示了如何在Java桌面应用中结合用户交互和文件操作。...

    精通Java Swing程序设计(中文CHM)

    本资源“精通Java Swing程序设计(中文CHM)”是一本专为初学者设计的指南,旨在帮助读者快速掌握Swing的基本概念和实际应用。CHM(Compiled HTML Help)文件是一种微软的编译型HTML帮助文档格式,方便用户在离线...

    javaSwing初级入门知识

    10. **JOptionPane**: 提供弹出对话框,如消息提示、确认对话框等。 Swing还提供了事件监听机制,使得当用户与组件交互时,程序能够响应这些事件。例如,你可以为JButton添加ActionListener,监听用户的点击动作。 ...

    java swing基础教程

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

    java swing 学习资料

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

    JAVA-Swing学习资料入门级

    8. **Swing 工具包(Utils)**:Swing 还提供了一些实用工具类,如 JOptionPane 用于弹出对话框,JOptionPane.showInputDialog() 就可以用来获取用户输入。 通过这个入门级的 Java Swing 教程,你将逐步学习如何...

    汽车租赁swing项目.zip

    此外,可能还会使用JOptionPane来弹出对话框,向用户提供确认信息或者错误提示。 由于项目目前尚未连接到数据库,所有的数据可能都是静态存储的,例如在内存中创建一个ArrayList来保存车辆信息。如果要实现数据库...

    JAVA图形编程(AWT+SWING)

    5. **对话框(Dialogs)**:用于弹出警告、确认、输入等,如JOptionPane和JFileChooser。 6. ** Swing的JApplet和JFrame**:JApplet用于网页嵌入,而JFrame是独立窗口应用的基础。 7. **线程(Threads)**:Java GUI...

    swing教程之经典

    - 没有弹出式菜单和滚动窗格等基本元素; - 基于同位体的体系结构存在严重缺陷; - 事件处理模型基于继承,不够灵活。 - **Swing的优势**: - 100%纯Java实现,不依赖于本地代码,这意味着Swing组件在不同的...

Global site tag (gtag.js) - Google Analytics