O modo de tela inteira não é tela inteira

2

Eu estou tentando fazer 100% do modo de tela cheia, estou usando o Ubuntu 12.10, e à esquerda está a barra lateral e o topo é o menu. Quando eu executo o modo de tela cheia, ele não cobre essas duas barras de menu, ele fica ao lado delas:

Deve cobrir a barra de menu esquerda e a barra preta superior. Alguém tem alguma idéia do por que isso não acontece?

package sscce;

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;

public class Main extends JFrame{

    public Main(){
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice myDevice = ge.getDefaultScreenDevice();
        this.setUndecorated(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myDevice.setFullScreenWindow(this);
    }

    public static void main(String[] args){
        Main main = new Main();
    }
}
    
por Get Off My Lawn 21.12.2012 / 22:53

1 resposta

0

Esse é o comportamento esperado. setFullScreenWindow envia uma solicitação ao sistema operacional, que retorna as dimensões da área de trabalho: a área à direita do lançador e abaixo da barra de menus.

Meu histórico está no desenvolvimento do Windows (embora agora eu esteja aprendendo o desenvolvimento do Linux o mais rápido que posso), portanto não posso fornecer detalhes precisos sobre como alterar seu código. Mas no Windows você precisaria de várias chamadas da API do Win, além da interface nativa através do JNI / JNA, para fazer isso. Para um bom artigo sobre esse problema no Unity, consulte o link

Se este é um aplicativo para uso pessoal, você deve fazer o que quiser. Mas se você está se desenvolvendo para outras pessoas, eu posso respeitosamente dizer que geralmente não é uma boa idéia passar por cima desse comportamento. Como o desktop funciona deve ser visto como um contrato. Os usuários provavelmente ficariam confusos e frustrados com um aplicativo que cobria a maneira esperada de controlar o computador.

    
por chaskes 30.12.2012 / 05:37