2013-07-17 14 views

risposta

6

semplice, utilizzare questo metodo

JPasswordField jt=new JPasswordField(20); 

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

      add(jt); 

Per impostazione predefinita, la password nella JPasswordField non è permesso di essere tagliato/copiato. Tutto ciò che devi fare è abilitarli.

Come per il commento sulla disattivazione pasta non ho trovato una proprietà, ma ho raggiunto con questo, (io non consiglierei questo modo)

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

Un altro modo, è quello di fare l'override del paste() (vi consiglio in questo modo), mentre dichiarando

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

Aggiornamento: ho frainteso il commento. Ma quanto sopra disabilita la pasta. Tuttavia, per disabilitare una copia/taglia/incolla, è meglio se il metodo richiesto che deve essere disabilitato è sovrascritto senza implementazione in esso.

Se c'è un modo migliore, mi piacerebbe sentire.

+0

questo serve come un buon hack. –

+0

rispondi quando fai la domanda lol – nachokk

+3

@nachokk ["non è solo OK chiedere e rispondere alla tua stessa domanda, è _esplicitamente_consigliato"] (http://blog.stackoverflow.com/2011/07/its -ok-to-ask-and-answer-your-own-questions /) – DannyMo