JFrame के भीतर एक आयताकार चित्र बनाने का प्रयास करते समय, फ्रेम का आकार, आकार बदलने योग्य गुण और आयत का आकार निर्धारित करना निर्देशांक के परिणामस्वरूप आयत फ़्रेम के भीतर केंद्रित नहीं हो सकता है।
इस विसंगति का अंतर्निहित कारण निहित है फ़्रेम की सजावट में, जैसे बॉर्डर और टाइटल बार। ये सजावटें फ्रेम के भीतर जगह घेरती हैं, जिससे आयत की स्थिति प्रभावित होती है।
उचित केंद्रीकरण सुनिश्चित करने के लिए, सीधे फ्रेम के बजाय फ्रेम के सामग्री क्षेत्र पर पेंट करना महत्वपूर्ण है। सजावट को छोड़कर, सामग्री क्षेत्र अनिवार्य रूप से फ्रेम का आंतरिक भाग है।
उदाहरण कोड:
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); } }); } }
इस उदाहरण में, JFrame का सामग्री क्षेत्र 800x400 के पसंदीदा आकार पर सेट है, जबकि केंद्रित किया जाने वाला घटक, एक JPanel, 700x300 के पसंदीदा आकार पर सेट है। सामग्री फलक पर मान्य() विधि का उपयोग करके, घटक के वास्तविक आकार और स्थिति की गणना की जाती है और लागू किया जाता है।
अब, घटक को JFrame के भीतर क्षैतिज और लंबवत रूप से सही ढंग से केंद्रित किया जाना चाहिए।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3