2017-01-02 70 views
-1

我一直在環顧四周,一直未能找到任何解決方案,這個問題:我有一個JTextField,我想做一些事情時,用戶粘貼在那裏,我已經找到了這個:What event to use when pasting something in a JTextField?區分鍵入和粘貼在JTextField

它工作正常,除了我只想做事情時,用戶粘貼的東西,而不是當它寫在文本字段,我雖然保存了它的先前的價值,並比較它與新的,如果它是空的,現在不是,做的事情,但這是行不通的,因爲當用戶鍵入文本字段中的第一個字母時,它將進入該狀態。

如果有人知道如何做到這一點,請使用documentListener或其他任何偵聽器來處理它,這將是非常有幫助的。

更新:由於不同的人問,我想這樣做的原因是因爲文本將來自條形碼閱讀器或一些類似的設備。

+1

爲什麼?從用戶界面設計的角度來看,這聽起來很糟糕。 –

回答

0

除了我只想要做的事情,當用戶粘貼一樣

爲什麼要粘貼的文本被視爲比鍵入的文本有什麼不同?聽起來像是一個設計問題。如果您指定了更好的理由/要求,我們可能會提出更好的解決方案。

我想要做一些事情,當用戶粘貼東西在裏面

您可能能夠覆蓋JTextFieldpaste()方法。只需重寫調用super.paste()的方法,然後添加您的自定義代碼即可。

如何做到這一點白衣的DocumentListener

也許你會認爲是「粘貼」來表示多個字符被一次性加入。在這種情況下,您只需測試添加到Document的字符串的長度。

+0

我想要處理粘貼的文本不同,因爲文本實際上將來自條形碼閱讀器,只是這樣做,讀取條形碼並粘貼閱讀文本。我會考慮重寫粘貼方法。感謝您花時間回答。 –

0

我能夠通過配置我的條形碼掃描器並在每次閱讀後發送一個「新行」並每次發生這種情況時使用JTextField的actionPerformed來解決我的問題。感謝所有試圖提供幫助的人。

相關問題