java - 如何在 If 语句中使用 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);
}
这将使您在要使其可见的位置上更加灵活。另一种方式更短,但同样的想法:
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");
}
}
}
推荐阅读
- keycloak - 如何禁用 Keycloak Account 客户端但保留 Account Rest API?
- c++ - 使用菜单项在 QML 中打开 c++ ui 表单
- angular - 在可观察的生命周期中保留变量
- android - 如何根据条件在 RecyclerView 上安排项目?
- r - 展开矩阵列表的维度
- python-3.x - 如何从字典中提取多个数据框
- angular - 如何在单元测试中从 ngx-bootstrap 导入?
- node.js - 使用自动完成 node.js 和 express.js 进行实时搜索
- spring-boot - jsonDoclet 任务:Javadoc 生成失败
- python - TypeError:sklearn Lasso 模型中需要一个整数