Я использовал Java и Swing.
У меня два окна MainWindow
и PointWindow
.
MainWindow
- это окно JFrame.
PointWindow
расширяет JWindow
.
Я хочу, чтобы PointWindow
всегда было сверху (никогда не под другими окнами или компонентами). Я установил в конструкторе PointWindow
setAlwaysOnTop(true)
, но проблема в том, что когда я нажимаю на MainWindow
(фокус), затем другим способом, например, щелкаю на моем рабочем столе (пустое место) и пытаюсь перетащить PointWindow
, тогда он находится под моим MainWindow
.
Есть ли способ сохранить PointWindow
всегда поверх всех компонентов?
ИЗМЕНИТЬ
В конструкторе я попытался использовать WindowListener
, как показано ниже.
this.addWindowListener(new WindowAdapter() {
@Override
public void windowDeactivated(WindowEvent e) {
toFront();
}
@Override
public void windowLostFocus(WindowEvent e) {
toFront();
}
});
... но это не работает, события не перехватываются
PointWindow
, щелкнул в другом месте (не в проекте) и попытался перетащить. - person ACz   schedule 22.12.2016WindowListener
с переопределенными методами какwindowDeactivated
илиwindowLostFocus
, но он не перехватывается. - person ACz   schedule 22.12.2016JWindow
сalwaysOnTop(true)
действительно остается поверх JFrame. Поэтому я предполагаю, что что-то конкретное для вашего кода меняет это поведение. - person Markus Fischer   schedule 22.12.2016MouseAdapter
какMouseListener
в конструктор. - person ACz   schedule 22.12.2016