检查JTextFields是否为空

时间:2017-01-28 14:58:21

标签: java

我正在为uni的Java项目工作,我必须尽可能地保持对面向对象的忠诚度。所以我有一个疑问。

我有很多带有文本字段和按钮的窗口,每当我点击一个按钮时,我需要检查框架中的文本字段是否为空。

现在我做的是在ActionListener类中添加一个新方法并将其命名为check()。这个方法检查我说的是什么,如果有空文本字段,它会抛出我创建的异常(让我们说出EmptyFieldsException)。

然后我在actionPerformed中有一个try / catch块,调用check方法。如果捕获到异常,则会弹出JOptionPane。

我的问题是:这是处理此类问题(使用例外)的好方法吗?或者它实际上是矫枉过正?也许我可以简单地在actionPerformed中使用if语句,我对此有点困惑。

1 个答案:

答案 0 :(得分:-1)

您应该坚持创建一个方法,使用if语句检查所有文本字段并返回一个布尔值。

private boolean checkFields(){
        if(textField1.getText().lenght()<1)
            return false;
        if(textField2.getText().lenght()<1)
            return false;
        //check all text fields

        return true;
}

表示按钮操作的方法将首先调用checkFields()方法,如果返回true,则在通知用户并非所有文本字段都已填充后再继续返回。

private void buttonAction(){
        if(!checkFields()){
            Alert message=new Alert(        Alert.AlertType.WARNING);
            message.setHeaderText("Text field empty");
            message.setContentText("One of the text fields is empty");
            message.showAndWait();
            return;
        }

        //continue the method
    }

如果您确保只有在所有TextField都有文本的情况下才会运行该方法,则无需担心。抛出和捕获的例外成本要高得多,并且应该在特殊情况下使用。