Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7572469
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T15:56:00+00:00 2026-05-30T15:56:00+00:00

I have tried to use the example shown here but java showing error message

  • 0

I have tried to use the example shown here but java showing error message of

“AttributeSet cannot be resolved to a type”

That is why I am trying to use another method of allowing only digits:

txtUsername.addKeyListener(new MyKeyListener());

public class MyKeyListener extends KeyAdapter{
  public void keyPressed(KeyEvent ke){
      System.out.println("Key pressed code = "+ke.getKeyCode());
      if (ke.getKeyCode()>=48 && ke.getKeyCode()<=57)
              return true;
      else
              return false;
  }
} 

But of course it is not working because keyPressed method is void. So, what to do in order to print only digits in textfield?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T15:56:01+00:00Added an answer on May 30, 2026 at 3:56 pm

    Here check this code snippet, that’s how you allow only digits in JTextField, by using DocumentFilter, as the most effeciive way :

    import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.AbstractDocument;
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.DocumentFilter;
    import javax.swing.text.DocumentFilter.FilterBypass;
    
    public class InputInteger
    {
        private JTextField tField;
        private MyDocumentFilter documentFilter;
    
        private void displayGUI()
        {
            JFrame frame = new JFrame("Input Integer Example");
            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    
            JPanel contentPane = new JPanel();
            contentPane.setBorder(
                BorderFactory.createEmptyBorder(5, 5, 5, 5));
            tField = new JTextField(10);
            ((AbstractDocument)tField.getDocument()).setDocumentFilter(
                    new MyDocumentFilter());        
            contentPane.add(tField); 
    
            frame.setContentPane(contentPane);
            frame.pack();
            frame.setLocationByPlatform(true);
            frame.setVisible(true);
        }
    
        public static void main(String[] args)
        {
            Runnable runnable = new Runnable()
            {
                @Override
                public void run()
                {
                    new InputInteger().displayGUI();
                }
            };
            EventQueue.invokeLater(runnable);
        }
    }
    
    class MyDocumentFilter extends DocumentFilter
    {   
        @Override
        public void insertString(DocumentFilter.FilterBypass fp
                , int offset, String string, AttributeSet aset)
                                    throws BadLocationException
        {
            int len = string.length();
            boolean isValidInteger = true;
    
            for (int i = 0; i < len; i++)
            {
                if (!Character.isDigit(string.charAt(i)))
                {
                    isValidInteger = false;
                    break;
                }
            }
            if (isValidInteger)
                super.insertString(fp, offset, string, aset);
            else
                Toolkit.getDefaultToolkit().beep();
        }
    
        @Override
        public void replace(DocumentFilter.FilterBypass fp, int offset
                        , int length, String string, AttributeSet aset)
                                            throws BadLocationException
        {
            int len = string.length();
            boolean isValidInteger = true;
    
            for (int i = 0; i < len; i++)
            {
                if (!Character.isDigit(string.charAt(i)))
                {
                    isValidInteger = false;
                    break;
                }
            }
            if (isValidInteger)
                super.replace(fp, offset, length, string, aset);
            else
                Toolkit.getDefaultToolkit().beep();
        }
    }
    

    Or one can simply use this approach, as given by @Carlos Heuberger

    @Override
    public void insertString(FilterBypass fb, int off
                        , String str, AttributeSet attr) 
                                throws BadLocationException 
    {
        // remove non-digits
        fb.insertString(off, str.replaceAll("\\D++", ""), attr);
    } 
    @Override
    public void replace(FilterBypass fb, int off
            , int len, String str, AttributeSet attr) 
                            throws BadLocationException 
    {
        // remove non-digits
        fb.replace(off, len, str.replaceAll("\\D++", ""), attr);
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

So I've tried to work with the pure-CSS, never-use-tables-for-layout gospel, I really have. But
I have tried to use ASP.NET MVC for a while, then I face a
I have tried to use some of the widgets in JQuery UI on an
I have tried to use mysql fulltext search in my intranet. I wanted to
Have you tried to use SharePoint with version control such as Perforce (or Subversion),
What should i use to code Classic ASP under Linux. I have really tried
I have a DLL that I want to profile.. I tried to use Very
I have tried this... Dim myMatches As String() = System.Text.RegularExpressions.Regex.Split(postRow.Item(Post), \b\#\b) But it is
I have been trying to use emacs as a python IDE, I have tried
I'm showing the code to this problem for example purposes, but really my question

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.