When to display error messages for invalid input in Swing application

前端 未结 2 1317
無奈伤痛
無奈伤痛 2020-12-21 16:43

I am using a JFormattedTextField for to format integer input for a Swing app. The default behavior for invalid input is to quietly (i.e. no error message) reset

相关标签:
2条回答
  • 2020-12-21 17:22

    I'd have a look at JLayer (Java 7) or JXLayer (Java 6 & below)

    This would allow you to decorate the field or form with a verity of different states.

    As to when.

    I'd start by using some kind of highlighter, Dan suggest using icons, which is a great idea, coupled with JLayer/JXLayer this would reduce the overall effect on the form.

    I'd wait until the user tries to submit the form before displaying a dialog & forcing focus back to the invalid fields.

    The basic idea would be to allow the user the freedom to move about the form without to much restriction (cause not all people think in a linear manner) but encourage them to correct any possible errors they are producing along the way without having to wait till they submit the form to find the errors (think about the worse web form you've ever used and don't do that)

    Obviously, if they try and submit the form with errors, you'll want to display and error message and highlight the first offending field

    For examples of JLayer/JXLayer have a look at Validation overlays using JXLayer & How to decorate components

    0 讨论(0)
  • 2020-12-21 17:48

    My first opinion is that showing a JOptionPane to the user whenever the text field focus is lost could be very annoying for users. I would display an error message when the user hits the OK button of your form. The error message could contain a list of all error messages or only the first one and focus the element with the error.

    Another choice would be to use regular JTextField and write your own custom validators. When focus changes, your IntegerValidator (or other implementation) would validate the input string and the UI could display an error or warning icon next to the field, the same as some web applications do.

    0 讨论(0)
提交回复
热议问题