我是学习Java的新手。在一个作业中,我正在使用If / Else语句并尝试在JOptionPane中显示信息。这是我制作的一个简单示例,用来说明我遇到的问题。如果字符串hello中的输入等于“ hey”,我想显示“ Hello there”。
什么都没发生。
我注意到,如果我在代码中的前面放置了JOptionPane语句,例如在扫描程序声明旁边,它将起作用。另外,如果我这样做并且将另一个JOptionPane保留在原始位置,则会有两个对话框。
我当时在想,扫描仪的输入可能以某种方式弄乱了它。
import javax.swing.JOptionPane;
import java.util.Scanner;
public class HW2 {
public static void main( String args[] ) {
Scanner kb = new Scanner(System.in);
System.out.print("Say hey");
String hello = kb.nextLine();
if (hello.equals("hey"))
JOptionPane.showMessageDialog(null, "Hello there!");
kb.close();
}
}
有人知道为什么不显示对话框吗?谢谢!
答案 0 :(得分:0)
我相信您在这里没有任何问题,只是您的JOptionPane隐藏在IDE窗口后面或后面。为了始终将其放在最前面,请尝试使用以下类似内容:
if (hello.equals("hey")) {
JOptionPane pane = new JOptionPane();
JDialog dialog = pane.createDialog("My Test");
pane.setMessage("Hello There");
dialog.setAlwaysOnTop(true);
dialog.setVisible(true);
}
这将使您在使其可见的位置更具灵活性。另一种方法是简短一些,但思路相同:
if (hello.equals("hey")) {
JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, "Hello There");
}
完整的代码供您使用:
import javax.swing.*;
import java.util.Scanner;
public class HW2 {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.println("Say hey");
String hello = kb.nextLine(); //use kb.nextLine().trim() if you dont want whitespaces
if (hello.equals("hey")) {
JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, "Hello There");
}
}
}