java - 如何在 If 语句中使用 JOptionPane?

标签 java joptionpane

我刚开始学习 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();
    }
}

有谁知道为什么对话框不显示?谢谢!

最佳答案

我相信您在这里没有任何问题,只是您的 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);
}

这将为您提供更多的灵 active ,让您可以更灵活地选择要使其可见的位置。另一种方式更短,但想法相同:

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");
        }
    }
}

关于java - 如何在 If 语句中使用 JOptionPane?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54640092/

相关文章:

带有 IS NULL 的 Java 预处理语句

tomcat - servlet 中的 JOptionPane 不适用于 tomcat

java - 从 JOptionPane 创建对话框并处理 OK_CANCEL_OPTION

Java:如何根据特定属性从队列中删除对象?

java - Java 中的 DAO 实现

java - jre8 中 URLPermission 的 IllegalArgumentException

java - JOptionPane 不接受长类型

java - 如何停止方法启动直到 JFrame 关闭

java - 在全屏应用程序中生成 JOptionPane 会显示任务栏

java - JFreeChart 与 XYBoxAnnotation 在一侧打开