Переключение фокуса между несколькими модальными диалогами - PullRequest
3 голосов
/ 17 сентября 2011

возможно ли переключить фокус между двумя модальными диалогами?То есть один диалог имеет фокус и является интерактивным, и я переключаю фокус / интерактивность на другой диалог.Вот мой пример кода:

public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setSize(400, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel = new JPanel(new FlowLayout());
    frame.add(panel);
    frame.setVisible(true);
    final JDialog dialog1 = new JDialog(frame, true);
    dialog1.setContentPane(new JLabel("dialog 1"));
    dialog1.pack();
    dialog1.setLocationRelativeTo(frame);
    new Thread(new Runnable() {
        public void run() {
            dialog1.setVisible(true);
        }
    }).start();
    final JDialog dialog2 = new JDialog(frame, true);
    JButton btn = new JButton("Test");
    btn.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            // TODO
        }
    });
    dialog2.setContentPane(btn);
    dialog2.pack();
    dialog2.setLocationRelativeTo(frame);
    new Thread(new Runnable() {
        public void run() {
            dialog2.setVisible(true);
        }
    }).start();
}

Могу ли я поместить что-нибудь там, где TODO должен дать диалогу1 фокус?Я пробовал toFront, setAlwaysOnTop(true) и grabFocus, и ни один из них не добился цели.Они выведут dialog1 вперед, но dialog2 по-прежнему является интерактивным.

Спасибо,

Дэвид

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...