Создание панели JOptionPane в полноэкранном приложении показывает панель задач - PullRequest
2 голосов
/ 16 августа 2011

У меня полноэкранное приложение (100%, даже панели задач), которое иногда запрашивает пароль, используя JOptionPane с PasswordBox.Моя проблема в том, что когда появляется всплывающее окно, вы можете увидеть панель задач системы внизу.Это выглядит примерно так:

    ----     popup
------------ taskbar
------------ fullscreen app

, тогда как я хочу, чтобы стек оставался таким:

    ----     popup
------------ fullscreen app
------------ taskbar

Пока мое приложение работает, я бы хотел полностью скрыть панель задач,Это класс ящиков паролей, который я использую:

public class PasswordBox {
    public String prompt() {
        JPasswordField pass = new JPasswordField(10);
        int action = JOptionPane.showConfirmDialog(null, pass,"Enter Password",JOptionPane.OK_CANCEL_OPTION); 
        return new String(pass.getPassword());
    }
}

, и я вызываю его так:

String tmpPASS = new PasswordBox().prompt();

Если кому-то понадобится больше кода, я могу легко его предоставить.Я не уверен, как решить эту проблему и с чего начать.Я отказался от идеи «сосредоточиться», потому что когда всплывающее окно появляется, оно имеет фокус.

1 Ответ

2 голосов
/ 16 августа 2011

Если я не ошибаюсь, вы должны передать родительский элемент JFrame в качестве первого параметра JOptionPane:

public class PasswordBox {
    public String prompt(JFrame fatherFrame) {
        JPasswordField pass = new JPasswordField(10);
        int action = JOptionPane.showConfirmDialog(fatherFrame, pass,"Enter Password",JOptionPane.OK_CANCEL_OPTION); 
        return new String(pass.getPassword());
    }
}
...