(SOLVED: a WindowStateListener
i odroczony wywołanie toBack
gdy okno jest skupiony)Dokonywanie Unfocusable Okno w Javie
Witam wszystkich!
Próbowałem dowiedzieć się, jak zrobić java.awt.Window
(jakakolwiek podklasa zrobi), aby nie można go było przenieść na wierzch. Pracuję nad programem Java podobnym do Samurize, który pojawia się pod wszystkimi oknami aplikacji i wyświetla Widgety na ekranie. Podobnie jak "Always on top windows with Java", mam nadzieję na coś prostego, miejmy nadzieję, tylko pojedyncze wywołanie metody, jeśli to możliwe, ale sprawdziłem przez dokumenty API i nie miałem szczęścia.
Edytuj: Przepraszam, miałem na myśli "zawsze na dole", a nie "nieostry".
Oto podstawowy przypadek testowy. Po kliknięciu na oknie, nie powinny pochodzić przede wszystkich innych aktualnie na ekranie:
import java.awt.*;
import javax.swing.*;
public class Main extends JFrame {
public Main() {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
setFocusable(false);
setFocusableWindowState(false);
setBounds(new Rectangle(dim));
toBack();
}
public static void main(String[] args) {
new Main().setVisible(true);
}
}
To powinno działać, ale przynajmniej w moim systemie Mac OS X 10.6 okno może być ciągle skoncentrowany. –
Edytowane, przepraszam. Zobacz post. –
Aha! Rozgryzłem to. Trzeba po prostu odroczyć wywoływanie 'toBack()' z 'NSTimer' podczas wykonywania obsługi WindowStateListener. –