如何在if语句中使用的JOptionPane?

问题描述 投票:0回答:1

我是新来学习Java。在任务中,我使用if / else语句,并试图在JOptionPane中显示的信息。下面是一个简单的例子我做了展示,我遇到的问题。我想显示“你好”,如果在字符串hello输入等于“哎”。

没有出现。

我注意到,如果我把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();
    }
}

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

java joptionpane
1个回答
1
投票

我相信你真的没有任何问题就在这里,只需你的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");
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.