Мой вопрос связан о java swing frame. У меня есть 2 jFrame. jFrame1 и jFrame2. в jframe 1 есть jbutton, поэтому, когда пользователь нажимает кнопку jbutton, я хочу сфокусироваться на кадре 2 (Frame 2 уже загружен в приложение.) без закрытия frame1. Пожалуйста, помогите сделать этоУстановить фокус на другой jframe
0
A
ответ
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
Это правильный ответ на неправильный вопрос. См. Комментарии. –
Используйте модальные диалоговые окна! Также см. Этот вопрос [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-practice) –
Дон ' t знать, что JDialog должен быть модальным, но да, вы должны использовать JDialog в качестве дочернего окна. – camickr