0

我正在开发一个小摇摆应用程序来处理一些多线程/同步,但除此之外。我基本上有 3 匹马比赛,当一个完成时会弹出一个框并说_马赢了。这就是我现在所拥有的,因为我无法找出一个简单的窗口来显示获胜者。

                    if(horsea.getX()>=415){
                        PausableThread.pause();
                        String result=JOptionPane.showInputDialog("Horse #1 Wins!");
                        PausableThread.unpause();
                        setReset(true);
                        PausableThread.pause();
                    }
                    else if(horseb.getX()>=415){

                        PausableThread.pause();
                        String result=JOptionPane.showInputDialog("Horse #2 Wins!");
                        PausableThread.unpause();
                        setReset(true);
                        PausableThread.pause();

                    }
                    else if(horsec.getX()>=415){

                        PausableThread.pause();
                        String result=JOptionPane.showInputDialog("Horse #3 Wins!");
                        PausableThread.unpause();
                        setReset(true);
                        PausableThread.pause();
                    }

我知道这是一个对话框,我知道还有其他方法,例如 showMessageDialog 或其他方法,但我知道这些方法的参数是什么,

谢谢你的帮助!

编辑:

所以这就是我想要使用的,但在我的我不确定“框架”是什么。

                else if(horseb.getX()>=415){

                    PausableThread.pause();
                    String result=JOptionPane.showMessageDialog(frame, "Horse 2 is the winner", "We Have A Winner!", JOptionPane.PLAIN_MESSAGE);
                    PausableThread.unpause();
                    setReset(true);
                    PausableThread.pause();

                }

那是我想要显示的那种消息,但是在 frame 所在的位置下有一个错误

编辑:

通过使用它得到它!

JOptionPane.showMessageDialog(getRootPane(),"Horse 2 is the winner", "We Have A Winner!", JOptionPane.PLAIN_MESSAGE);

感谢鳗鱼的帮助!

4

1 回答 1

3

不要使用 showInputDialog。JOptionPane.showConfirmDialog(...)如果您需要知道用户的响应,或者不需要,请改用showMessageDialog(...)

最重要的是,查看JOptionPanel API以获取有关可用的 JOptionPane 选项以及如何使用它们的完整描述。


编辑
你状态:

所以这就是我想要使用的,但在我的我不确定“框架”是什么。

            else if(horseb.getX()>=415){

                PausableThread.pause();
                String result=JOptionPane.showMessageDialog(frame, "Horse 2 is the winner", "We Have A Winner!", JOptionPane.PLAIN_MESSAGE);
                PausableThread.unpause();
                setReset(true);
                PausableThread.pause();

            }

在这里,我们必须更多地了解您当前的计划。假设您当前的程序显示了一个主 GUI,例如 JFrame 或 JApplet,并且发生了一些事件来刺激其中一个 JOptionPanes 显示。如果是这样,那么“frame”变量可以引用主 JFrame 上的任何组件,或者主 JFrame 本身。如果您的程序没有显示主 JFrame(或其他顶级窗口),则 frame 可以为空。

此外,您将需要摆脱,String result = ...因为 ashowMessageDialog(...)只显示一条消息并且不返回字符串。我认为这应该会产生编译器错误。

于 2013-11-08T01:42:41.997 回答