2015-03-25 2 views
0

Я ищу кого-то, кто поможет мне создать JFormattedTextField. Я хочу ТОЛЬКО принимать номера (0-9). Когда пользователь вводит неверный вход (EX: «a»), он не позволяет его вводить! Я пробовал другие исходные коды, но я не знаю, где их разместить в моем коде! И они всегда вызывают ошибки ...Может кто-нибудь помочь мне создать JFormattedTextField, который работает с моим кодом?

Вот мой код ...

private void followerPrompt() { 
    JFormattedTextField followerPrompt=new JFormattedTextField("0"); 
    JFrame followerPromptWindow=new JFrame("Enter the number of followers you have:"); 
    followerPromptWindow.setLayout(new GridLayout(2,1,1,1)); 
    followerPromptWindow.add(followerPrompt); 
    followerPromptWindow.setResizable(false); 
    followerPromptWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    followerPromptWindow.setLocation(500, 400); 
    followerPromptWindow.setVisible(true); 
    followerPromptWindow.setSize(promptWindowWidth * promptWindowScale,promptWindowHeight * promptWindowScale); 
    JButton followerPromptWindowButton = new JButton("Next Step"); 
    followerPromptWindow.add(followerPromptWindowButton); 
    followerPromptWindowButton.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) {   
      followerInput = followerPrompt.getText(); 
      System.out.println("Follower Input: " + followerInput); 
      likePrompt(); 
      followerPromptWindow.dispose(); 
     } 
    }); 
} 

Как вы можете видеть, у меня уже есть он установлен (и импортировать) в JFormattedTextField. Но я не знаю, как заставить его работать на самом деле. Если кто-то может дать мне код, который был помещен в мой код и отправлен обратно, это было бы здорово!

Спасибо, Maxie_Z :)

ответ

1

Для этого типа требования, я бы канаву JFormattedTextField (вы не хотите форматировать, но для фильтрации) и использовать обычный JTextField, с обычаем DocumentFilter на его документ. Создайте собственный фильтр и переопределите его методы replace и insertString, чтобы принимать только цифры. Вы также можете подать звуковой сигнал/изменить фон текстового поля мгновенно, когда введена незначащая цифра.

+0

Хотя это правильный ответ на вопрос *, как указано *, я считаю, что это пример учебника проблемы XY. – Ordous

+0

Что такое «проблема XY»? –

+1

http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Ordous

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