Java GUI验证

Java GUI验证,java,swing,Java,Swing,我有一个JavaSwing应用程序,它包含4个Jtextfields、1个JLabel和1个JButton。我希望用户在4个JTextfields中输入整数值,当用户按下JButton时,整数值的总和应该出现在Jlabel中…现在主要的问题是JButtons onClickListener上,我必须验证JTextfields,我需要确切地知道哪个JTextfield具有无效条目…我正在考虑实现一个为每个JTextfield单独设置try-catch块,并在JButton的onClickListe

我有一个JavaSwing应用程序,它包含4个Jtextfields、1个JLabel和1个JButton。我希望用户在4个JTextfields中输入整数值,当用户按下JButton时,整数值的总和应该出现在Jlabel中…现在主要的问题是JButtons onClickListener上,我必须验证JTextfields,我需要确切地知道哪个JTextfield具有无效条目…我正在考虑实现一个为每个JTextfield单独设置try-catch块,并在JButton的onClickListener中使用Integer.parseInt(字符串s),这样我就可以知道哪个JTextfield会导致问题……但是为每个JTextfield实现单独的try-catch块不是效率低下吗???有谁能建议一个更好的方法

但是为每个JTextfield实现一个单独的try-catch块不是效率低下吗

效率低下?当您只检查4个JTextFields时,这几乎不是一个问题,在本例中甚至不应该考虑这一点。相反,我更关注GUI的易用性和安全性。首先考虑使用JSPIN或JFrastDeTestFieldor或使用DoputsFutter防止用户输入非数值数据。考虑离开JButt,或者更好地,它的动作,禁用,直到所有四个文本字段被填满。这将使您的GUI更加防白痴


根据JB Nizet的评论:

我还将关注可维护性,并避免重复相同的代码块4次。使用数组或列表存储4个按钮,并使用循环为4个按钮创建相同的内容

但是为每个JTextfield实现一个单独的try-catch块不是效率低下吗

效率低下?当您只检查4个JTextFields时,这几乎不是一个问题,在本例中甚至不应该考虑这一点。相反,我更关注GUI的易用性和安全性。首先考虑使用JSPIN或JFrastDeTestFieldor或使用DoputsFutter防止用户输入非数值数据。考虑离开JButt,或者更好地,它的动作,禁用,直到所有四个文本字段被填满。这将使您的GUI更加防白痴


根据JB Nizet的评论:

我还将关注可维护性,并避免重复相同的代码块4次。使用数组或列表存储4个按钮,并使用循环为4个按钮创建相同的内容


您认为计算机每秒可以执行多少个try-catch块来验证一个整数?是接近400万,还是接近400万?如果你认为它接近400万,你是否认为最终用户会发现你的应用程序太慢,因为点击按钮需要百万分之一秒的时间才能做出反应?你认为计算机每秒可以执行多少个try-catch块来验证一个整数?是接近400万,还是接近400万?如果您认为它接近400万,您是否认为最终用户会发现您的应用程序太慢,因为它需要百万分之一秒的时间来对按钮单击作出反应?+1,或者当然。我还将关注可维护性,并避免重复相同的代码块4次。使用数组或列表来存储4个按钮,并使用循环来为4个按钮生成相同的内容。使用太多的try-catch块不被认为是糟糕的编程实践吗???我只是想知道是否有更成熟的方法来解决这个问题…@user2423083:如果你绝对需要知道哪个JTextField出了错,就不需要了。@user2423083你读过气垫船的答案了吗?重读一遍。他提出了几个更好的方法。我还将关注可维护性,并避免重复相同的代码块4次。使用数组或列表来存储4个按钮,并使用循环来为4个按钮生成相同的内容。使用太多的try-catch块不被认为是糟糕的编程实践吗???我只是想知道是否有更成熟的方法来解决这个问题…@user2423083:如果你绝对需要知道哪个JTextField出了错,就不需要了。@user2423083你读过气垫船的答案了吗?重读一遍。他提出了几个更好的办法。