JTextField основной вопрос - PullRequest
       3

JTextField основной вопрос

0 голосов
/ 13 февраля 2011

Интересно, можно ли инициализировать текстовое поле с помощью печати (эту часть я знаю, как сделать), но затем выделить печать, а затем исчезнуть, когда пользователь начнет печатать? Даже без выделения, как вы можете сделать так, чтобы поле инициализировалось чем-то вроде: «Пожалуйста, введите свой номер телефона», а затем оно исчезает, чтобы пользователю не пришлось удалять текст?

Ответы [ 4 ]

5 голосов
/ 14 февраля 2011

Существует другой подход с событием focusGained.Просто отметьте исходный текст:

   String initialText = "Enter your story here...";
   ...
   jTextArea1.setText(initialText); 
   ...

   private void focusGained(java.awt.event.FocusEvent evt) {
        if (jTextArea1.getText().equals(initialText)) {
            //jTextArea1.setSelectionStart(0);
            //jTextArea1.setSelectionEnd(jTextArea1.getText().length());
            jTextArea1.selectAll();
        }
    }

Таким образом, когда пользователь вводит что-то в jTextArea1, исходный текст будет заменен немедленно.

5 голосов
/ 13 февраля 2011
  • Инициализируйте экземпляр JTextFiled некоторым известным текстом, таким как "Пожалуйста, введите свой номер телефона"
  • Инвентарь FocusListener
  • В focusGained () проверьте экземпляр JTextField, чтобы увидеть, имеет ли он известный текст и удаляет ли он текст; если нет, ничего не делай.

Вот пример кода

    final String INITIAL_TEXT = "Please enter your ph. number";
    final JTextField textField = new JTextField(INITIAL_TEXT);
    textField.addFocusListener(new FocusListener() {

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

        }

        @Override
        public void focusLost(FocusEvent e) {

        }
    });
2 голосов
/ 15 февраля 2011

и focusLost это хорошая возможность вернуть исходный текст обратно, если пользователь ничего не вводил.Например:

public void focusLost(FocusEvent e)
{
    // If the field is empty, set the default text when losing focus.
    if (inputField.getText().isEmpty())
    {
        inputField.setText(INITIAL_TEXT);
    }
}

Или, если вы не хотите использовать метод focusLost, вы можете создать внутренний класс MyFocusListener, расширяющий FocusAdapter, таким образом, вам нужно только реализоватьметоды, которые вы собираетесь использовать.

private class MyFocusListener extends FocusAdapter
{
    public void focusGained(FocusEvent e)
    {
        // do your magic!   
    }

    // ignore the focusLost method
}
0 голосов
/ 03 июня 2011
public boolean isCorrect() {
    data = new String[6];
    for (int i = 0; i < informationLabel.length; i++) {
        if (i == 0) {
            if (!informationTextField[i].getText().equals("")) {
                data[i] = informationTextField[i].getText();
            }
            else
                return false;
        }
        if (i == 1 || i == 2) {
            if (informationPasswordField[i - 1].getText().equals(""))
                return false;
        }
        if (i == 3 || i == 4 || i == 5 || i == 6) {
            if (!informationTextField[i - 2].getText().equals("")) {
                data[i - 1] = informationTextField[i - 2].getText();
            }
            else
                return false;
        }
    }
    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...