我最近遇到了Java JTextField的一個奇怪問題。當我運行下面的代碼(見下文)時,在文本字段中輸入「0」首先發送一個粘貼操作,然後輸入「0」。例如,如果將「文本」複製到剪貼板,則在鍵入「0」時鍵入「text0」。同樣,鍵入一個「4」替換前一個字符爲「4」(我猜這是一個刪除操作,然後鍵入「4」)。在鍵入「7」之前,鍵入「7」將清除文本字段。JTextField Numpad問題
下面是代碼:
import javax.swing.JFrame;
import javax.swing.JTextField;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
JTextField text = new JTextField();
frame.add(text);
frame.setSize(500, 500);
frame.setVisible(true);
}
}
問題是在Red Hat Linux(使用VNC從Windows XP訪問)發生;一切都按預期在Windows XP上運行。
更新:在Ubuntu上的程序也沒有問題。我也嘗試過使用不同的鍵盤和VNC觀衆。
更新2:Java的版本
對於Red Hat:
java version "1.6.0_17"
OpenJDK Runtime Environment (IcedTea6 1.7.7) (rhel-1.17.b17.el5-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
對於XP:
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) Client VM (build 23.1-b03, mixed mode, sharing)
更新3:試圖運行在三個不同的紅帽計劃機器(全部在同一組工作),並且另外嘗試從不同的XP公司運行它電腦並重新啓動。
更新4:今天我開始工作,發現問題已經神奇地消失了。但是,真的很高興知道爲什麼它首先發生,以便我(和其他許多人遇到這個奇怪問題)知道如何在將來修復它。
怪異的......聽起來像它可能是一個鍵盤映射問題?愚蠢的我知道,但你有沒有確保數字鍵盤鎖定和其他紅帽子應用程序的預期工作? – bcr 2012-07-10 17:44:08
Numpad鎖定已打開,並且在其他程序中鍵入時一切正常。我也嘗試使用不同的鍵盤 - 沒有運氣。 – lrAndroid 2012-07-10 17:53:16
在這裏找到了一些東西:http://www.rvdavid.net/how-to-get-the-use-of-your-number-pad-back-in-ubuntu/ 這是Ubuntu的當然,但它可能是在你的情況類似的東西? – vaisakh 2012-07-10 17:59:24