2013-08-23 3 views
0

Мой вопрос связан о java swing frame. У меня есть 2 jFrame. jFrame1 и jFrame2. в jframe 1 есть jbutton, поэтому, когда пользователь нажимает кнопку jbutton, я хочу сфокусироваться на кадре 2 (Frame 2 уже загружен в приложение.) без закрытия frame1. Пожалуйста, помогите сделать этоУстановить фокус на другой jframe

+3

Используйте модальные диалоговые окна! Также см. Этот вопрос [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice) –

+0

Дон ' t знать, что JDialog должен быть модальным, но да, вы должны использовать JDialog в качестве дочернего окна. – camickr

ответ

0

Вы можете использовать Window.toFront() довести текущий кадр на фронт:

import java.awt.Window; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 

public class MyFrame extends JFrame implements ActionListener { 
    public MyFrame(String title) { 
     super(title); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     JButton button = new JButton("Bring other MyFrame to front"); 
     button.addActionListener(this); 
     add(button); 
     pack(); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     new MyFrame("1"); 
     new MyFrame("2"); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     for (Window window : Window.getWindows()) { 
      if (this != window) { 
       window.toFront(); 
       return; 
      } 
     } 
    } 
} 
+0

Это правильный ответ на неправильный вопрос. См. Комментарии. –