7

切り取りとコピーができないことに気付きましたJPasswordFieldか? パスワードの選択した部分をクリップボードにコピー/カットする方法は?これを行う方法はありますか?

4

1 に答える 1

8

簡単です、この方法を使用してください

JPasswordField jt=new JPasswordField(20);

            // Put client property
            jt.putClientProperty("JPasswordField.cutCopyAllowed",true);

            add(jt);

デフォルトでは、 のパスワードのJPasswordField切り取り/コピーは許可されていません。必要なのは、それらを有効にすることだけです。

貼り付けの無効化に関するコメントによると、プロパティは見つかりませんでしたが、これを使用して達成しました(この方法はお勧めしません)

jt.getActionMap().put("a",null);
        jt.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ctrl V"),"a");

別の方法は、宣言中にオーバーライドすることですpaste()(この方法をお勧めします)

JPasswordField jt=new JPasswordField(20){
  public void paste(){}
};

更新:コメントを誤解しました。しかし、上記は貼り付けを無効にします。ただし、コピー/切り取り/貼り付けのいずれかを無効にするには、無効にする必要のあるメソッドを実装せずにオーバーライドすることをお勧めします。

もっと良い方法があれば、ぜひ聞きたいです。

于 2013-07-17T17:30:36.540 に答える