„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie zentriere ich eine Komponente im Inhaltsbereich eines JFrames?

Wie zentriere ich eine Komponente im Inhaltsbereich eines JFrames?

Veröffentlicht am 23.12.2024
Durchsuche:423

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

Wie kann ich eine Komponente innerhalb eines JFrames richtig zentrieren?

Wenn Sie versuchen, ein Rechteck innerhalb eines JFrames zu zeichnen, legen Sie die Rahmengröße, die Größenänderungseigenschaft und die Rechtecke fest Koordinaten führen möglicherweise nicht dazu, dass das Rechteck innerhalb des Rahmens zentriert ist.

Der Grund für diese Diskrepanz liegt in den Dekorationen des Rahmens, wie z Rahmen und Titelleiste. Diese Dekorationen nehmen Platz innerhalb des Rahmens ein und wirken sich auf die Positionierung des Rechtecks ​​aus.

Um eine ordnungsgemäße Zentrierung sicherzustellen, ist es wichtig, auf den Inhaltsbereich des Rahmens zu malen und nicht direkt auf den Rahmen. Der Inhaltsbereich ist im Wesentlichen der innere Teil des Rahmens, mit Ausnahme der Dekorationen.

Beispielcode:

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);
            }
        });
    }
}

In diesem Beispiel ist der Inhaltsbereich des JFrame auf eine bevorzugte Größe von 800 x 400 eingestellt, während die zu zentrierende Komponente, ein JPanel, auf eine bevorzugte Größe von 700 x 300 eingestellt ist. Durch die Verwendung der Methode „validate()“ im Inhaltsbereich werden die tatsächliche Größe und Position der Komponente berechnet und angewendet.

Jetzt sollte die Komponente korrekt im JFrame zentriert sein, sowohl horizontal als auch vertikal.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3