Maison > Java > le corps du texte

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

WBOY
Libérer: 2024-02-09 10:40:09
avant
670 Les gens l'ont consulté

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);
Copier après la connexion

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);
    }
}
Copier après la connexion

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;
}
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal