Как использовать JOptionPane в операторе If? - PullRequest
0 голосов
/ 12 февраля 2019

Я новичок в изучении Java.В задании я использую операторы If / Else и пытаюсь отобразить информацию в JOptionPane.Вот быстрый пример, который я сделал, чтобы показать проблему, с которой я столкнулся.Я хочу отобразить «Hello there», если вход в строке «hello» равен «hey».

Ничего не появляется.

Я заметил, что если я поместил оператор 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();
    }
}

Кто-нибудь знает, почему диалоговое окно не отображается?Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2019

Я полагаю, что у вас нет никаких проблем, просто ваша 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");
        }
    }
}
...