Следующий класс демонстрирует мою проблему с MouseMotionListeners в FSEM.
public class TestGUI extends JFrame {
Panel panel;
public TestGUI()
{
panel = new Panel();
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
gd.setFullScreenWindow(this);
setVisible(false); // use the workaround to the Mac OS X FSEM bug where mouseMotionListeners don't work right away
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(panel);
setVisible(true);
}
class Panel extends JPanel
{
public Panel()
{
addMouseMotionListener(new MouseAdapter() {
@Override
public void mouseMoved(MouseEvent e)
{
Toolkit.getDefaultToolkit().beep();
}
});
setVisible(true);
}
}
public static void main(String[] args) {
new TestGUI();
}
}
Проблема в следующем: я отчетливо слышу, когда срабатывает mouseEvent из-за вызова Toolkit.getDefaultToolkit().beep();
в обработчике событий. Обработчик событий отлично работает на большей части экрана, за исключением области экрана, которая обычно имеет ссылку док-станция для Mac OS X. Я подтвердил это, закрепив док-станцию на разных сторонах экрана, и «мертвая зона» изменилась на ту сторону экрана, к которой я прикрепил док-станцию. Есть ли обходной путь для этого?
Моя установка:
Версия Java: 1.7.0_55.
Версия Mac OS X: 10.8.5.
com.apple.eawt.Application.requestToggleFullScreen(Window)
API вместо этого. - person MadProgrammer   schedule 10.07.2014