Полноэкранные кадры Swing неправильно фокусируются в Linux (Windows подходит)

У меня есть приложение, которое порождает несколько полноэкранных фреймов без декораций (в основном управляющих всем пространством экрана).Моя проблема в том, что некоторые кнопки на определенных кадрах предназначены для «переключения экранов», что в основном означает отображение другого кадра вместо текущего.

Я легко добился этого в Windows, используя следующее:

target.setVisible(true);
target.requestFocus();
this.parent.setVisible(false);

Где target - это фрейм, на который я переключаюсь. Это работает, потому что изначально я установил невидимость всех кадров, кроме первого «основного» кадра.

Теперь, когда я портирую это в среду Linux, я получаю некрасивое «мигание» при смене кадров. В эту долю секунды я вижу фон своего рабочего стола и все открытые окна, которые существуют за моим приложением. У меня раньше была эта проблема в Windows, и я исправил ее, сфокусировав целевой кадр перед тем, как сделать старый невидимым.

Есть идеи, как решить эту проблему, специфичную для Linux?

edit:

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setUndecorated(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(0,0,screenSize.width, screenSize.height);
this.getContentPane().setLayout(null);
setVisible(true);
validate();
5
задан n0pe 26 July 2011 в 17:56
поделиться