Java: Как я могу вывести JFrame на фронт? - PullRequest
3 голосов
/ 26 февраля 2012

В настоящее время я жду очень важного объявления, и я создал простое приложение, чтобы каждые 30 минут проверять, было ли объявление сделано или нет

Когда объявление будет сделано, я хочу, чтобы всплыло окно и сообщило мне об этом. Окно представляет собой простой JFrame, в котором есть текст.

У меня есть класс под названием Объявление.

Внутри этого класса я определяю другой класс для фрейма под названием Form, поэтому у меня что-то вроде этого:

 class Form{

    public Form(){
       //create frame and show it
          JFrame frame = new JFrame("anouncement");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container c = frame.getContentPane();
        frame.setSize(420, 100);
        JLabel l1 = new JLabel("The announcement was just made");
        l1.setFont(new Font("Courier New", Font.ITALIC, 20));
        c.add(l1);
        frame.setLocationRelativeTo(null);
        frame.setResizable(false);
        frame.setVisible(true);
        frame.toFront(); //this thing doesn't work
        }

 }

 public class Announcement{

       public static void main(String[] args){
           //do the checking every 30 minutes part
       }
 }

Функция toFront вообще не работает.

Например, я хочу, чтобы во время просмотра я хотел, чтобы это окно всплыло и установил фокус на этом окне.

Так что я хочу, чтобы он был перед всеми остальными окнами, независимо от того, сколько других окон я уже открыл.

1 Ответ

2 голосов
/ 26 февраля 2012

Если я вас правильно понимаю, в вашем коде есть как минимум два окна - одно базовая программа, которую вы называете «Форма», а другое окно, которое вы хотите «выпрыгнуть» из основного окна, верно?Если это так, то не используйте второй JFrame, а скорее, чтобы окно «выскакивающего» было JDialog или JOptionPane и сделало его зависимым от первого окна.

Пожалуйста, исправьте меня, если мои предположения неверны.

...