"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment centrer un composant dans le volet de contenu d'un JFrame ?

Comment centrer un composant dans le volet de contenu d'un JFrame ?

Publié le 2024-12-23
Parcourir:868

How Do I Center a Component within a JFrame's Content Pane?

Comment puis-je centrer correctement un composant dans un JFrame ?

Lorsque vous essayez de dessiner un rectangle dans un JFrame, définissez la taille du cadre, la propriété redimensionnable et le rectangle les coordonnées peuvent ne pas avoir pour conséquence que le rectangle soit centré dans le cadre.

La raison sous-jacente de cet écart réside dans les décorations du cadre, telles qu'une bordure et un titre. bar. Ces décorations occupent de l'espace à l'intérieur du cadre, affectant le positionnement du rectangle.

Pour garantir un bon centrage, il est crucial de peindre sur la zone de contenu du cadre plutôt que directement sur le cadre. La zone de contenu est essentiellement la partie intérieure du cadre, à l'exclusion des décorations.

Exemple de code :

public class CenteredRectangle {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException |
                        IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                // Create a JFrame with a content pane
                JFrame frame = new JFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.getContentPane().setPreferredSize(new Dimension(800, 400));
                frame.pack();

                // Create a component to be centered
                JPanel panel = new JPanel();
                panel.setBackground(Color.RED);
                panel.setPreferredSize(new Dimension(700, 300));

                // Add the component to the content pane
                frame.getContentPane().add(panel);
                frame.validate();

                // Position the frame at the center of the screen
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }
}

Dans cet exemple, la zone de contenu du JFrame est définie sur une taille préférée de 800x400, tandis que le composant à centrer, un JPanel, est défini sur une taille préférée de 700x300. En utilisant la méthode validate() dans le volet de contenu, la taille et la position réelles du composant sont calculées et appliquées.

Maintenant, le composant doit être correctement centré dans le JFrame, à la fois horizontalement et verticalement.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3