2012-06-26 2 views
4

Я использую Netbeans IDE. Я хочу дать текст запроса JTextfield таким образом, что когда пользователь вводит текст в JTextField, он очищается и принимает вход пользователя.Добавление свойства текста запроса в JTextfield

+1

Пожалуйста, перефразировать ваш вопрос. – adatapost

+0

Думаю, вам нужно сделать это сами, используя прослушиватели событий. – Reddy

+0

Есть нет встроенной недвижимости в netbeans – Jayashri

ответ

2

Вы можете добавить простой фокус слушатель в текстовое поле, и проверить данные на текстовое поле, когда фокус теряется что-то вроде этого:

import java.awt.EventQueue; 
import java.awt.GridLayout; 
import java.awt.event.FocusEvent; 
import java.awt.event.FocusListener; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import javax.swing.JTextField; 

/** 
* 
* @author David 
*/ 
public class Test extends JFrame { 

    private JTextField textField, textField2; 

    public Test() { 
     createAndShowUI(); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       Test test = new Test(); 
      } 
     }); 
    } 

    private void createAndShowUI() { 
     setTitle("Test"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     createComponents(); 
     addComponentsToContentPane(); 
     addListeners(); 

     pack(); 
     setVisible(true); 
    } 

    private void addComponentsToContentPane() { 
     getContentPane().setLayout(new GridLayout(2, 1)); 

     getContentPane().add(textField); 
     getContentPane().add(textField2); 
    } 

    private void createComponents() { 
     textField = new JTextField(10); 
     textField2 = new JTextField("Click here to lose focus of above textField"); 
    } 

    private void addListeners() { 
     textField.addFocusListener(new FocusListener() { 

      @Override 
      public void focusGained(FocusEvent fe) { 
      } 

      @Override 
      public void focusLost(FocusEvent fe) { 
       if (textField.getText().length() >=1) { 
        JOptionPane.showMessageDialog(null, "You entered valid data"); 
        textField.setText(""); 
       }else { 
        JOptionPane.showMessageDialog(null, "You entered invalid data"); 
        textField.grabFocus();//make the textField in foucs again 
       } 
      } 
     }); 
    } 
} 

Чтобы сделать это в NetBeans правой кнопкой мыши на Component, выберите События ->Фокус ->focusLost.

+0

+1, FocusListener - это путь. –

+3

Это не ответ на вопрос - по крайней мере, не так, как я его понимаю. OP не спрашивает о проверке, но о «подсказке», которая отображается до тех пор, пока поле не имеет ни входа, ни фокуса, как правило, в сером цвете. @nIcEcOw - да, focusListener участвует в быстрой поддержке, но не в целом. SwingX поставляется с оперативной поддержкой :-) С другой стороны, если вы действительно хотите получить валидацию, bare-bones focusListener слишком низкоуровневый, по крайней мере, используйте InputVerifier – kleopatra

+0

@ Клеопатра. Я не думаю, что он заслуживает пониженного голосования, потому что вы читайте вопросы по-другому, а затем меня, OP сказал «таким образом, что когда пользователь вводит текст в JTextField, он очищается и принимает вход пользователя», он не говорит о сером что-либо! и он спросил, как добавить его, используя netbeans, который Im догадывается, что он использует IDE для создания пользовательского интерфейса, и я показал точные процедуры, которые OP попросил использовать focusListener. –

3

Я не знаю, что propt-текстовые поля Дэвид Kroukamp уже видели, но со следующим кодом, я создал эти TextFields, которые я знаю,)

import java.awt.event.FocusEvent; 
import java.awt.event.FocusListener; 

import javax.swing.JTextField; 

public class PTextField extends JTextField { 

    public PTextField(final String proptText) { 
     super(proptText); 
     addFocusListener(new FocusListener() { 

      @Override 
      public void focusLost(FocusEvent e) { 
       if(getText().isEmpty()) { 
        setText(proptText); 
       } 
      } 

      @Override 
      public void focusGained(FocusEvent e) { 
       if(getText().equals(proptText)) { 
        setText(""); 
       } 
      } 
     }); 

    } 

} 
Смежные вопросы