让取消操作回到程序开始?

时间:2013-04-14 20:42:02

标签: java swing joptionpane

我有这个gui,提示用户在个人或公司之间进行选择,但我希望取消按钮返回到程序的开头或主框架。

int chooseVehicleType = JOptionPane.showOptionDialog(this,
                "What kind of vehicle is it?", "Choose and option",
                JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
                vehicle, "");

if (chooseVehicleType == 1) {
        int result2 = JOptionPane.showConfirmDialog(null, truck,
                "Enter the truck details", JOptionPane.OK_CANCEL_OPTION);
        // Printing out the input of the user in the center panel
        if (result2 == JOptionPane.OK_OPTION) {
                             //Do stuff here, proceed to he next prompt window
            }
        if (result2 == JOptionPane.CANCEL_OPTION) {
            updateCenterPanel("Operation cancelled!");
                           /* Updating the center panel, 
                            * but also close the operation   
                            * and go back to the main screen 
                            */
        }

所以,我走到了这一步。但现在提示用户进入下一个选择屏幕,而不是回到主框架。

有什么想法吗?我用完了...... 提前谢谢!

1 个答案:

答案 0 :(得分:1)

由于尚未发布SSCCE,因此有许多方案需要考虑。

根据您的代码中的注释,您有一个可能已打开JOptionPane的中心面板,主屏幕可能在后台。如果按取消按钮,则要关闭中央面板并将焦点对准主屏幕框。您可以将以下代码添加到取消选项:

   if (result2 == JOptionPane.CANCEL_OPTION) {
        updateCenterPanel("Operation cancelled!");
                      centerPanel.dispose(); // closes the window and releases it's occupied resources
                      mainScreen.setVisible(true); //gain focus on the main window
    }

如果你只想在不关闭任何其他窗口的情况下获得对主屏幕框架的关注,只需将此添加到JOptionPane的取消选项中:

    mainScreen.setVisible(true);

我希望这有帮助。干杯!