Запустить файл = запустить программу, связанную с данным файлом, и автоматически открыть этот файл при запуске программы.
Допустим, я запускаю IntelliJ IDEA, я запускаю свой код и главное окно(модальный) моей программы обнаруживается.Моя программа находится на переднем плане.
Затем я запускаю файл .pdf (сейчас это означает, что AcroReader будет выполняться) из моей программы.AA появится перед IntelliJ, но за моей программой.
Вопрос
Я бы хотел, чтобы AA (это просто пример здесь) был показан перед моей программой, а непозади.Как это сделать?
Обратите внимание, это не значит, что я бы хотел переместить свою программу в фоновый режим!
Для запуска файлов я использую
java.awt.Desktop.getDesktop().open(new java.io.File(filepath));
Мой графический интерфейс выполнен в Swing.
Обновление 1
Чтобы исключить любое влияние пользовательских виджетов, событий и т. Д., Я помещаюпросто JButton внизу моего окна (JDialog) - это в Scala, но эта часть похожа на синтаксис Java:
var dlg = new javax.swing.JDialog(null,"test",Dialog.ModalityType.DOCUMENT_MODAL);
dlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
var button = new JButton("Select Me");
var actionListener = new ActionListener() {
def actionPerformed( actionEvent : ActionEvent) = {
java.awt.Desktop.getDesktop().open(new java.io.File("test.pdf"))
}
};
button.addActionListener(actionListener);
dlg.add(button, BorderLayout.SOUTH);
dlg.setSize(300, 100);
dlg.setVisible(true);
После нажатия на кнопку «AA» отображается позади моего приложения.Так как запуск АА занимает несколько секунд, я также попытался нажать кнопку и убрать мышь из моего окна.Точно такое же поведение.
Я также заметил, что АА отображается в той же относительной позиции, что и мое окно, верхний левый угол АА находится рядом с нижним правым углом моего приложения.