Voy a estar haciendo un proyecto muy pronto y voy a tener que usar modo de pantalla completa en él.

Va a dibujar algunos de los gráficos en la ventana. Sería conveniente si puedo usar JFrame o algo similar.

No sé cuál es el final de la resolución de la pantalla será. Por favor, dígame si el graphicss será automáticamente cambiado?

JFrame jf = new JFrame();
jf.setSize(1650,1080);
//make it fullscreen;
//now is everything is going to be rescaled so it looks like the original?
  • Debe definir «pantalla completa». Junto con las respuestas a continuación, puede que desee considerar si el marco debe ser decorada o no (que se incluyen en la barra de título y fronteras). A menos que usted está realizando pintura personalizada, reescalado que no se produzcan. Si usted está usando un Swing normal de los Componentes y un Diseño de los gerentes, usted debe encontrar que el diseño se ajusta a la nueva resolución de pantalla. Por supuesto, usted querrá probarlo 😉
  • ¿Quieres usar León de pantalla Completa?
InformationsquelleAutor Yoda | 2012-07-19

12 Comentarios

  1. 185

    Agregar:

    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    frame.setUndecorated(true);
    frame.setVisible(true);
    • También frame.setUndecorated(true); se convierten verdaderamente en pantalla completa.
    • Funciona bien 🙂
    • Si usted está usando GNU/Linux, puede que sea necesario establecer DisplayMode.BIT_DEPTH_MULTI y DisplayMode.REFRESH_RATE_UNKNOWN cuando la aplicación de un nuevo modo de pantalla. Yo no tuve que usar setExtendedState. Prueba usando Kubuntu 15.10 con Java 8.
    • Esto todavía se muestra el menú de Inicio (en Windows).
    • downvoter de atención a comentar?
    • Estoy usando Java8, para mí sin decoración está lanzando una excepción y cuando me he quitado sin decorar, código funciona bien y hizo marco de pantalla completa también.
    • Yo te diré el error y la razón. He creado una AppFrame clase (con algunas propiedades por defecto) y en el fin de realizar cualquier clase JFrame simplemente me extiendo. Se ha setVisible como verdadero. Por más de tres líneas tiene que ser en el mismo orden, si es visible antes de ExtendedState obtendrá por debajo de error. Cuando he corregido errores en el orden de pasado y conseguir JFrame con ninguna barra de título………Exception in thread "main" java.awt.IllegalComponentStateException: The frame is displayable. at java.awt.Frame.setUndecorated(Frame.java:923)
    • poner todo eso en una nueva pregunta con un mínimo reproducible ejemplo
    • Hecho, stackoverflow.com/questions/46804305/…
    • Esto funciona no todo el tiempo para mí. Eso es realmente extraño, pero la primera vez que he utilizado este código, todo fue bien, pero durante la siguiente ejecución, veo Ubuntu menú superior y un lanzador en el panel, como sin este código.

  2. 34

    Si quieres poner el marco en modo de pantalla completa (como una película en pantalla completa), verificación de estas respuestas.

    Las clases java.awt.GraphicsEnvironment y java.awt.GraphicsDevice se utilizan para poner una aplicación en modo de pantalla completa en la pantalla (el dispositivo).

    por ejemplo:

    static GraphicsDevice device = GraphicsEnvironment
            .getLocalGraphicsEnvironment().getScreenDevices()[0];
    
    public static void main(String[] args) {
    
        final JFrame frame = new JFrame("Display Mode");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setUndecorated(true);
    
        JButton btn1 = new JButton("Full-Screen");
        btn1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                device.setFullScreenWindow(frame);
            }
        });
        JButton btn2 = new JButton("Normal");
        btn2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                device.setFullScreenWindow(null);
            }
        });
    
        JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));
        panel.add(btn1);
        panel.add(btn2);
        frame.add(panel);
    
        frame.pack();
        frame.setVisible(true);
    
    }
    • Para ejemplo.
    • Vargas: Usted puede incluso agregar una barra de menú en un decorado de la ventana. Para dejar de fumar, en tu ejemplo, usted tiene que escribir «alt+F4».
    • Esta debe ser la respuesta correcta en mi humilde opinión
  3. 6

    Es una forma de utilizar el Estado Extendido. Esto le pide al sistema operativo subyacente para maximizar el JFrame.

    setExtendedState(getExtendedState() | JFrame.MAXIMIZED_BOTH);

    Otro enfoque sería manualmente maximizar la pantalla para que usted requisito.

        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(100, 100, (int) dim.getWidth(), (int) dim.getHeight());
        setLocationRelativeTo(null);

    Pero este tiene trampas en Ubuntu OS. El trabajo en torno a que he encontrado es este.

        if (SystemHelper.isUnix()) {
            getContentPane().setPreferredSize(
                    Toolkit.getDefaultToolkit().getScreenSize());
            pack();
            setResizable(false);
            show();
    
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    Point p = new Point(0, 0);
                    SwingUtilities.convertPointToScreen(p, getContentPane());
                    Point l = getLocation();
                    l.x -= p.x;
                    l.y -= p.y;
                    setLocation(p);
                }
            });
    
        }
        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        setBounds(100, 100, (int) dim.getWidth(), (int) dim.getHeight());
        setLocationRelativeTo(null);

    En Fedora el problema anterior no está presente. Pero hay complicaciones con Gnome o KDE. Así que mejor tener cuidado. Espero que esto ayude.

  4. 5

    Sólo usa este código :

    import java.awt.event.*;
    import javax.swing.*;
    public class FullscreenJFrame extends JFrame {
    private JPanel contentPane = new JPanel();
    private JButton fullscreenButton = new JButton("Fullscreen Mode");
    private boolean Am_I_In_FullScreen = false;
    private int PrevX, PrevY, PrevWidth, PrevHeight;
    public static void main(String[] args) {
    FullscreenJFrame frame = new FullscreenJFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(600, 500);
    frame.setVisible(true);
    }
    public FullscreenJFrame() {
    super("My FullscreenJFrame");
    setContentPane(contentPane);
    //From Here starts the trick
    FullScreenEffect effect = new FullScreenEffect();
    fullscreenButton.addActionListener(effect);
    contentPane.add(fullscreenButton);
    fullscreenButton.setVisible(true);
    }
    private class FullScreenEffect implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent arg0) {
    if (Am_I_In_FullScreen == false) {
    PrevX = getX();
    PrevY = getY();
    PrevWidth = getWidth();
    PrevHeight = getHeight();
    //Destroys the whole JFrame but keeps organized every Component
    //Needed if you want to use Undecorated JFrame dispose() is the
    //reason that this trick doesn't work with videos.
    dispose();
    setUndecorated(true);
    setBounds(0, 0, getToolkit().getScreenSize().width,
    getToolkit().getScreenSize().height);
    setVisible(true);
    Am_I_In_FullScreen = true;
    } else {
    setVisible(true);
    setBounds(PrevX, PrevY, PrevWidth, PrevHeight);
    dispose();
    setUndecorated(false);
    setVisible(true);
    Am_I_In_FullScreen = false;
    }
    }
    }
    }

    Espero que esto ayude.

    • por favor, no cambian a la gente del código. Si usted se sintió algo necesita ser cambiado, comentario aquí y PeGiannOS puede tener un vistazo. Si no quieren cambiar, usted siempre puede ofrecer una nueva Respuesta, si usted siente que es importante.
  5. 4

    Más fácil revisión de la historia:

    for ( Window w : Window.getWindows() ) {
    GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().setFullScreenWindow( w );
    }
    • ¿Cuál es la diferencia betweend frame.setExtendedState(JFrame.MAXIMIZED_BOTH); y su solución?
    • Usted tiene que tener un marco para su solución. Mientras que para la mía no y automáticamente el bucle a través de todas las ventanas en el programa de
  6. 2

    Primera de todas, que es la resolución que desea utilizar, 1650,1080.

    Ahora agregar:

    frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 

    Si usted tiene problemas con respecto a los componentes en el JFrame, entonces después de haber agregado todos los componentes mediante el frame.add(component) método, agregue la siguiente instrucción.

    frame.pack();
  7. 0

    Usted sólo necesita esto:

    JFrame frame = new JFrame();
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    Cuando se utiliza el MAXIMIZED_BOTH modificador, se alcanzará el máximo de todo el camino a través de la ventana (altura y anchura).

    Hay algunos que sugirió el uso de este:

    frame.setUndecorated(true);

    Yo no lo recomiendo, porque la ventana no tiene un encabezado, por lo tanto sin cierre/restaurar/botón de minimizar.

  8. 0
    JFrame frame = new JFrame();
    frame.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize()));

    Esto sólo hace que el marco al tamaño de la pantalla

  9. 0

    Valores destacó que me refiero:

    JFrame en pantalla completa Java

    • mientras que la imagen puede dar una respuesta de forma implícita, por favor, trate también de elaborar su respuesta con una explicación. en mi humilde opinión, sin embargo, ya que su respuesta es en realidad el mismo que el existente, por favor, piense cuidadosamente si usted realmente desea elaborar y mantener esta respuesta o no.
  10. -1

    Conjunto de 2 propiedades a continuación:

    1. extendedState = 6
    2. resizeable = true

    Funciona para mí.

    • Final de la estática están ahí por una razón.
    • Hmmmm… En netBeans 8.0.1 puedo configurar JFrame para los valores de «resizeable» + «redimensionables,» properties ( propiedades de windows )

Dejar respuesta

Please enter your comment!
Please enter your name here