java - JFrame 文本警报结果

标签 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 或其他方法,但不知道这些方法的参数是什么,

感谢您的帮助!

编辑:

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

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

                }

这就是我想要显示的消息类型,但框架所在位置下有错误

编辑:

用这个就搞定了!

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

感谢鳗鱼的帮助!

最佳答案

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

最重要的是,看看 JOptionPanel API有关可用 JOptionPane 选项以及如何使用它们的完整说明。

<小时/>

编辑
您声明:

so this is what I want to use but in mine im not sure what "frame" is.

            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(...) 仅显示一条消息而不返回字符串。我认为这应该会产生编译器错误。

关于java - JFrame 文本警报结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849972/

相关文章:

java - Scala 相当于 Java java.lang.Class<T> 对象

java - hibernate 5 : Auto updated timestamp field for last modified

java - 如何在 JPanel 中垂直居中对齐 JScrollPane?

java - 在 Java 面板中包含命令提示符

java - 使用 treeNode 本身在 Jtree 中突出显示 treeNode

java - Spring RequestParam Map<String, String>

java - 通过两个进程访问Kafka Topic

c - c中独特的进程和线程

java - 取消javax.swing框架中的长任务

c++ - if block 内的 std::lock_guard 范围