我正在开发一个小型的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);
感谢鳗鱼的帮助!
答案 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(...)
只显示一条消息并且不返回字符串。这应该会产生编译错误,我想。