Sarge
Sarge

Reputation: 11

Else without If error... and I don't know why

The code below is action taken when a button is clicked on a simple form. The problem comes with the one if/else block. The If line is not terminated. The Else line is not terminated. But I have a consistent error that my Else exists without an If. I can't see why. I need someone smarter than me to identify what is going on here.

Thank you in advance!

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        FileFilter filter;
        filter = new FileNameExtensionFilter("Comma Separated Value files","csv","txt");
        JFileChooser chooser;
        chooser = new JFileChooser();
        chooser.addChoosableFileFilter(filter);
        chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
        int showDialog = chooser.showDialog(this, null);
        File selectedFile = chooser.getSelectedFile();
        String filename;
        filename = selectedFile.getAbsolutePath();
        if (filter.accept(selectedFile))
        {
            jTextField2.setText(filename);
            jTextField2.setBackground(Color.white);
        else
            jTextField2.setText("You Did NOT Select a CSV File.");
            jTextField2.setForeground(Color.black);
            jTextField2.setBackground(Color.red);
        }

}                                        

Upvotes: 0

Views: 960

Answers (4)

Shlublu
Shlublu

Reputation: 11027

The if's closing bracket is missing just before the else.

Upvotes: 0

5122014009
5122014009

Reputation: 4092

You need to close your "if" and "else" blocks. Example: if {} else {}.

if (filter.accept(selectedFile)) {
    jTextField2.setText(filename);
    jTextField2.setBackground(Color.white);
} else {
    jTextField2.setText("You Did NOT Select a CSV File.");
    jTextField2.setForeground(Color.black);
    jTextField2.setBackground(Color.red);
}

Upvotes: 1

Amitesh Rai
Amitesh Rai

Reputation: 874

The SYNTAX for if-else Block looks like this:-

if {
    // statements
} else {
    //statements
}

Now if you are having only ONE statement inside the if Or else part then you can afford to skip the curly braces{ } otherwise you surely need to put those curly braces as compiler looks for it can terminate the execution of if statement. However, it is always recommended to use the braces even if u have only ONE statement inside the if or else part as it improves the readability of the code.

Upvotes: 1

RemS
RemS

Reputation: 280

You are missing the bracket '}' after "jTextField2.setBackground(Color.white);" and else.code is here

if (filter.accept(selectedFile))
{
       jTextField2.setText(filename);
       jTextField2.setBackground(Color.white);
}
else
{
      jTextField2.setText("You Did NOT Select a CSV File.");
      jTextField2.setForeground(Color.black);
      jTextField2.setBackground(Color.red);
}

Upvotes: 2

Related Questions