-1

我有这个 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 
                            */
        }

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

有任何想法吗?我已经用完了它们...在此先感谢!

4

1 回答 1

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);

我希望这会有所帮助。干杯!

于 2013-04-18T09:40:03.773 回答