我在我的文本框上設置了默認文本,當用戶將焦點放在文本框上時,程序如何刪除此文本。副Versa,當用戶不關注文本字段時,默認文本會回來。Java文本字段隱藏
我在考慮在TF上添加一個動作事件,但只有在用戶點擊了輸入按鈕的同時集中在TF上時才起作用。一個線程會工作嗎?
我在我的文本框上設置了默認文本,當用戶將焦點放在文本框上時,程序如何刪除此文本。副Versa,當用戶不關注文本字段時,默認文本會回來。Java文本字段隱藏
我在考慮在TF上添加一個動作事件,但只有在用戶點擊了輸入按鈕的同時集中在TF上時才起作用。一個線程會工作嗎?
考慮將FocusListener添加到JTextField中。在focusGained(FocusEvent e)
方法中,您可以檢查JTextField的文本,如果它與預覽文本完全匹配,請將其刪除。在focusLost(FocusEvent e)
方法中,檢查JTextField是否爲空,如果是,則重新添加默認文本。
myTextField.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent e){
// get text from JTextField
// if text matches default text, either select all, so user can keep it or change it
// or delete it --- your choice
}
public void foucsLost(FocusEvent e){
// check if JTextField's text is empty.
// if so, cal setText(DEFAULT_TEXT) on the field
}
});
你可以叫你的任何JTextFields將這些功能
public void FocusGainedEmptyBox(JTextField txt)
{
txt.setText(null);
}
public void FocusLostFillBox(JTextField txt)
{
if(!txt.getText().equals(""))
{
txt.setText("I am Back");
}
}
呼叫FocusGainedEmptyBox(txtValue)對分衆和後獲得了在聚焦丟失FocusLostFillBox(txtValue)。
如果您需要在文本字段上使用DocumentListener來了解文本何時更改,那麼向文本字段中添加/刪除文本可能會導致問題。
有關此問題的其他解決方案,請查看Text Prompt。
我覺得你想要做一樣像HTML佔位符,
private void txtSearchStandardFocusLost(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
if (txtSearchStandard.getText().equals("")) {
txtSearchStandard.setText(" Type Here to Search Standard");
txtSearchStandard.setForeground(Color.GRAY);
}
}
private void txtSearchStandardFocusGained(java.awt.event.FocusEvent evt) {
// TODO add your handling code here:
if (txtSearchStandard.getText().equals(" Type Here to Search Standard")) {
txtSearchStandard.setText("");
}
txtSearchStandard.setForeground(Color.BLACK);
}
但請記住這個當你試圖在這個相同的文本框
添加一些其他事件謝謝你的兩個答案。這一個幫助我最多,終於學會了如何做到這一點,再次感謝兩國人民:) – Arc