2017-01-20 13 views
1

テキストをクリップボードにコピーし、テキストフィールドを右クリックして「貼り付け」をクリックします。貼り付けを聞く方法はありますか?むしろ、何かがこのようにペーストされた後に、フィールドの入力テキストが変更されました。JavaFXを使用してTextFieldで行ったマウスペーストをどのように聞きますか?

setOnKeyReleased() 
setOnInputMethodTextChanged() 
+0

ISNがテキストが変更されたかどうかを確認するだけで十分ですか? – DVarga

+0

あなたは "醜い"解決法を行うことができます。このようなもの: 'TextField'が右クリックされたときに、' TextField'テキストが変化するのを待ち受けます。右クリック後に最初に変更されたとき(キーが押されていないこと、テキストがペーストされていることを確認する)、新しいテキストがOSクリップボードの文字列と同じであるかどうかを確認します。これで十分でしょうか?もしそうなら、私はこれの例をあなたに提示することができます。 –

答えて

2

「ペースト」機能がpublic void paste()TextFieldTextInputControlスーパークラスに実装されています。これらは、この特定のケースでは動作しませんので。だから、それはありませんが、実際にイベント駆動型またはMVCのアプローチは、あなたがこの方法でオーバーライドすることで(それは、マウスやキーボードショートカット、通常はCTRL-Vによって呼び出されますか)「ペースト」アクションに反応することができます。

TextField tf = new TextField() { 
    @Override 
    public void paste() { 
     super.paste(); 
     System.out.println("text pasted in"); 
    } 
} 
関連する問題