Question Créer un panneau Java en plein écran


Comment feriez-vous un JComponent (panneau, cadre, fenêtre, etc.) en plein écran, de sorte qu'il recouvre également tout ce qui se trouve à l'écran, y compris la barre de démarrage des fenêtres?

Je ne veux pas changer la résolution ou quoi que ce soit avec le périphérique graphique comme bitdepth, etc., je veux juste recouvrir tout le reste.


15
2018-02-27 18:12


origine


Réponses:


Vous pouvez essayer certaines des codes dans cette page, permettant à un conteneur de remplir l'écran (ce n'est donc pas une solution pour un individuel composant, mais pour un ensemble de composants dans un conteneur comme un JFrame)

public class MainWindow extends JFrame
{
  public MainWindow()
  {
    super("Fullscreen");
    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(l);
      }
    });
  }
  ...
}

11
2018-03-17 09:49



Check-out ce tutoriel décrivant l'API en mode plein écran de Java.

Exemple de code (tiré du tutoriel). Notez que le code fonctionne sur un Window de sorte que vous auriez besoin d'intégrer votre JPanel avec un Window (par exemple. JFrame) pour ce faire.

GraphicsDevice myDevice;
Window myWindow;

try {
    myDevice.setFullScreenWindow(myWindow);
    ...
} finally {
    myDevice.setFullScreenWindow(null);
}

18
2018-02-27 18:16



Vous devez utiliser l'API suivante: http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html

Aller en plein écran n'est pas aussi simple que de créer un grand panneau, vous devez examiner les graphiques sous-jacents du système d'exploitation. Mais votre code JPanel devrait se traduire correctement.


6
2018-02-27 18:16



Je devais beaucoup chercher, faire la même chose. Voici une version de travail par étapes, afin que je puisse la retrouver plus tard et l'utiliser.

Étape 1: créer un fichier appelé fullscreen.java

Étape 2: copiez ce code et collez-le tel quel:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class fullscreen extends Window 
{
  private Button button;

  public fullscreen() 
  {
    super(new Frame());
    button = new Button("Close");
    button.addActionListener(new ActionListener() 
    {
      public void actionPerformed(ActionEvent e) 
      {
        System.exit(0);
      }
    });

    setLayout(new FlowLayout());
    add(button);

    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(0,0,screenSize.width, screenSize.height);
  }

  public static void main(String[] args) 
  {
    // This will take over your whole screen tested and works in my:
    // Fedora 12/13/14
    // CentOS 5.0
    // if this works for you, in other platforms, please leave a comments which OS it worked.
    // happy coding!
    new fullscreen().setVisible(true);
  }

}

Étape 3: compiler le code et exécuter

Terminé.


1
2018-04-22 14:14



Si j'étais vous, j'essayerais de faire en sorte que Java ne dessine pas la bordure du Jframe, puis le fait prendre tout l'écran.

import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;

import javax.swing.JFrame;


public class FenNoBorder extends JFrame {

    public FenNoBorder () {
        setUndecorated(true);
        setVisible(true);
        GraphicsEnvironment graphicsEnvironment=GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle maximumWindowBounds=graphicsEnvironment.getMaximumWindowBounds();
        setBounds(maximumWindowBounds);
    }
}

0
2018-03-16 21:57