JFrame文本提醒结果

时间:2013-11-08 01:24:27

标签: java multithreading swing

我正在开发一个小型的swing应用来处理一些多线程/同步,但除此之外。 我基本上有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或者其他东西,但是idk是什么参数,

感谢您的帮助!

修改

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

                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 is

的地方有一个错误

修改

通过使用它获得它!

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

感谢鳗鱼的帮助!

1 个答案:

答案 0 :(得分: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可以为null。

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