[英]Swing GUI doesn't accept accent characters
我面臨一個奇怪的問題。 我的Java應用程序不接受帶有重音符號的字符,例如é,è或ê。 Swing組件JTextField
將其轉換為e。 此外,我無法插入:
很奇怪,因為它不適用於旨在分發給用戶的已編譯和打包的應用程序(JAR文件)。 當我在Eclipse中執行應用程序時,一切正常:這些字符被接受。
我在啟動時檢查了使用的VM編碼。 他們是不同的。 打包的應用程序使用Cp1252,並且Eclipse以“ ISO -...”啟動它。 系統屬性“ file.encoding”相應顯示相關的編碼。 因此,我嘗試切換編碼,以便在Eclipse中重現該問題或在我的應用程序中對其進行修復。 但是結果和以前一樣。
你知道發生了什么嗎?
好的,問題不是由Java或任何編碼設置引起的。 我的應用程序掛接了所有關鍵事件。 有一個組件消耗了“死鍵”的鍵事件。 這就是為什么編輯器組件(或JTextField)沒有從事件分發程序接收到鍵事件的原因。
在OpenJDK錯誤跟蹤器中有一個關於Swing的錯誤參考: https : //bugs.openjdk.java.net/browse/JDK-8064448 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.