2011-02-23 18 views
23

जावा में, क्या शीर्षक और अन्य सीमाओं के बिना जेएफआरएएम की चौड़ाई और ऊंचाई प्राप्त करना संभव है?जेएफआरएएम: सीमाओं के बिना आकार प्राप्त करें?

frame.getWidth() और frame.getHeight() 1 सीमा सहित चौड़ाई लौटने लगता है।

धन्यवाद।

उत्तर

32
 

frame.getContentPane().getSize(); 
 
+3

धन्यवाद! frame.pack(); इस आदेश से पहले मौजूद होना चाहिए। अन्यथा, यह वापस जा रहा है (0; 0)। – rzaaeeff

8
frame.pack(); 
System.out.println("frame width : "+getWidth()); 
System.out.println("frame height: "+getHeight()); 
System.out.println("content pane width : "+getContentPane().getWidth()); 
System.out.println("content pane height: "+getContentPane().getHeight()); 
System.out.println("width of left + right borders: "+(getWidth()-getContentPane().getWidth())); 
System.out.println("height of top + bottom borders: "+(getHeight()-getContentPane().getHeight())); 
2

यह

frame.getContentPane().getSize(); 

लेकिन अभी तक नहीं यदि आप नहीं जोड़ा है सामग्री ठीक काम करता है। मेरे मामले में, मैं सामग्री जोड़ने से पहले जेएफआरएएम के आंतरिक आयामों की गणना करना चाहता था, इसलिए मैं तदनुसार सामग्री को विभाजित कर सकता था। यहां मैं क्या आया था।

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 

pack(); // Need this, otherwise insets() show as 0. 
int scrW = (int)screenSize.getWidth(); 
int scrH = (int)screenSize.getHeight(); 
    int innerW = scrW - getInsets().left - getInsets().right; 
    int innerH = scrH - getInsets().top - getInsets().bottom; 

    // Need to setSize(), otherwise pack() will collapse the empty JFrame 
    setSize(scrW, scrH); 
संबंधित मुद्दे