2013-03-29 47 views

回答

1

如何使用JPasswordField代替?這是一個子類JTextField

它允許編輯一行文本,其中視圖指示某些內容已輸入,但不顯示原始字符。

(從的Javadoc行情)

至於另外的字符需要動態轉變,你可能想尋找到一個UpperCaseField與來自Javadoc for JTextFieldUpperCaseField的例子。它可以很容易地轉化爲一些將每個角色轉換爲另一個角色的邏輯。

+0

每次按鍵時,我都想打印其他內容,並且在滿足某些條件後也將其用作文本字段 – user2076400

+0

我不確定我是否理解您的第一個添加。關於後者,一旦條件滿足,可以用'JTextField'替換'JPasswordField'(不管它是否只讀)。您可以隨時獲得用戶輸入的文本,即使它是「JPasswordField」。 – mthmulders

+1

它應該像:'k'鍵在文本區域按下輸出'a',然後在文本區域按'l'輸出附加'b'並繼續此過程 – user2076400

1

您需要使用JPasswordField。使用setEchoChar(char)你可以迴應你想要的任何角色。

更新作爲每OP comments,如果要求是基於由用戶按壓鍵differen呼應不同的字符,可以使用keyTyped事件,如下:

sampleTextBox.addKeyListener(new KeyAdapter() { 
     @Override 
     public void keyTyped(KeyEvent event) { 
      event.setKeyChar(getCharToEcho(event.getsetKeyChar())); 
          // getCharToEcho(char inputKey) will return the key to 
          // echo depending upon the key entered by the user 
     } 
    });