My application is constructed as follows:
- Main window allows user to select CSV file to be parsed
 - JOptionPane appears after a CSV file is selected and the JOptionPane contains a drop-down menu with various choices; each of which generates a separate window
 - Currently, the JOptionPane closes after a selection is made from the menu and the "OK" button is clicked
 
I am looking for a way to force the JOptionPane to remain open so that the user can select something different if they want. I would like the JOptionPane to be closed only by clicking the "X" in the upper right corner. I am also open to other possibilities to achieve a similar result if using a JOptionPane isn't the best way to go on this.
Here is the relevant block of code I'm working on:
try 
{
    CSVReader reader = new CSVReader(new FileReader(filePath), ',');
    // Reads the complete file into list of tokens.
    List<String[]> rowsAsTokens = null;
    try 
    {
        rowsAsTokens = reader.readAll();
    } 
    catch (IOException e1) 
    {
        e1.printStackTrace();
    }
    String[] menuChoices = { "option 1", "option 2", "option 3" };
    String graphSelection = (String) JOptionPane.showInputDialog(null, 
            "Choose from the following options...", "Choose From DropDown", 
            JOptionPane.QUESTION_MESSAGE, null, 
            menuChoices, // Array of menuChoices
            menuChoices[0]); // Initial choice
    String menuSelection = graphSelection;
    // Condition if first item in drop-down is selected
    if (menuSelection == menuChoices[0] && graphSelection != null)
    {
        log.append("Generating graph: " + graphSelection + newline);
        option1();          
    }
    if (menuSelection == menuChoices[1] && graphSelection != null)
    {
        log.append("Generating graph: " + graphSelection + newline);
        option2();      
    }
    if (menuSelection == menuChoices[2] && graphSelection != null)
    {
        log.append("Generating graph: " + graphSelection + newline);
        option3();
    }
    else if (graphSelection == null)
    {   
        log.append("Cancelled." + newline);
    }
}
 