Maison >Java >Comment définir la position d'un JPanel n'importe où sur l'écran

Comment définir la position d'un JPanel n'importe où sur l'écran

WBOY
WBOYavant
2024-02-09 10:40:09715parcourir

L'éditeur php Strawberry vous expliquera comment définir JPanel sur n'importe quelle position sur l'écran. JPanel est un composant conteneur couramment utilisé dans Java Swing. JPanel peut être positionné en définissant le gestionnaire de mise en page et en définissant la position du composant. Tout d'abord, nous devons choisir un gestionnaire de mise en page approprié, tel que FlowLayout, BorderLayout, etc. Vous pouvez ensuite placer le JPanel n'importe où sur l'écran en définissant les limites et les propriétés de position du composant. De cette façon, vous pouvez facilement réaliser le positionnement libre de JPanel et fournir une conception d'interface et une expérience interactive plus flexibles.

Contenu de la question

J'ai besoin de nombreux JPanels mais je ne peux pas les placer où je veux car lorsque j'essaie de changer des choses comme les bordures, soit elles disparaissent. Merci pour toute aide

C'est le code du panneau que j'essaie de positionner. Je veux qu'il soit aux 3/4 environ à droite de l'écran mais je ne peux pas le déplacer au-delà du coin supérieur droit

textField = new JTextField("Sample Text");
textField.setPreferredSize(new Dimension(200, 30));
textField.setFont(new Font("Arial", Font.PLAIN, 16));
textField.setEditable(false); // Set to false to make it read-only

JPanel textPanel = new JPanel(new GridBagLayout());
textPanel.add(textField);
add(textPanel, BorderLayout.NORTH);

Workaround

Les panneaux (et tous les Swing) nécessitent toujours un composant de niveau supérieur (tel que JFrame, JDialog ou JWindow) pour s'afficher à l'écran. Même si vous positionnez le panneau absolument à l'intérieur du conteneur de niveau supérieur (c'est le travail du gestionnaire de mise en page de corriger cela), ce que vous devez modifier, c'est la position du conteneur de niveau supérieur.

Voici un exemple de création d'une fenêtre qui n'est pas dans le coin supérieur gauche :

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main {
    
    public static void main(String[] args) {
        JFrame f = new JFrame("Positioning Test Frame");
        f.add(new JLabel("Window Content Area"));
        f.pack(); // make the Window as small as possible
        //f.setLocationRelativeTo(null); // this line will center the window
        f.setLocation(200, 200); // this line will go to absolute coordinates
        f.setVisible(true);
    }
}

Vous devrez peut-être calculer la position de la fenêtre en fonction de la taille de l'écran (environ 3/4 vers la droite). Le code ci-dessous fournira la taille du bureau (qui peut être composé de plusieurs écrans). Si vous n'êtes intéressé que par l'un des écrans, vous pouvez probablement voir d'où vous obtenez cette valeur.

public static Rectangle2D getDesktopSize() {
    Rectangle2D result = new Rectangle2D.Double();
    GraphicsEnvironment localGE = GraphicsEnvironment.getLocalGraphicsEnvironment();
    for (GraphicsDevice gd : localGE.getScreenDevices()) {
      for (GraphicsConfiguration graphicsConfiguration : gd.getConfigurations()) {
        result.union(result, graphicsConfiguration.getBounds(), result);
      }
    }
    return result;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer