Указание ввода - PullRequest
       32

Указание ввода

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

Есть ли способ заставить пользователя вводить свои данные, перезаписывая определенные символы.

т.е.

Amount: 1__.__

... выглядит так ...

Наконец:

Amount: 1200.50

Но я хочу быть уверен, что цифры будут напечатаны, как только пользовательнажимает на клавиатуру.

Заранее спасибо.

ps: ОС - это MS Windows 9x / XP / Vista / 7.И приложение для консоли.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011
MaskFormatter mf1 = new MaskFormatter("#####.##");
mf1.setPlaceholderCharacter('_');
JFormattedTextField ftf1 = new JFormattedTextField(mf1);

Вот полный код

import java.awt.Container;
import java.text.ParseException;
import javax.swing.BoxLayout;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.text.MaskFormatter;

public class Test {

    public static void main(String args[]) throws ParseException {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container content = f.getContentPane();
        content.setLayout(new BoxLayout(content, BoxLayout.PAGE_AXIS));

        MaskFormatter mf1 = new MaskFormatter("######.###");
        mf1.setPlaceholderCharacter('_');
        JFormattedTextField ftf1 = new JFormattedTextField(mf1);
        content.add(ftf1);

        f.setSize(300, 100);
        f.setVisible(true);
    }

}
2 голосов
/ 26 февраля 2011

Вы не говорите, в какой ОС вы работаете. Для выполнения расширенной работы с входным терминалом это может быть важно.

Вы могли бы потратить некоторое время на реализацию такого решения в Java, самостоятельно фиксируя нажатия клавиш, восстанавливая строку ввода и т. Д. С другой стороны, вы смотрели на JLine ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...