2013-04-30 13 views
5

मेरे आवेदन में कुछ समस्या की जांच करते समय, मुझे बस कुछ अजीब चीज मिली।जावा स्विंग jframe आकार स्क्रीन के रूप में आयाम आयाम

public class MainFrame extends JFrame { 
    public MainFrame() { 
     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     setExtendedState(JFrame.MAXIMIZED_BOTH); 
     pack(); 
    } 
} 

public class Main { 
    public static void main(String[] args) { 
     MainFrame mf = new MainFrame(); 
     mf.setVisible(true); 
     System.out.println(mf.getSize()); 
    } 
} 

किसी तरह, मेरे 1280x1024 संकल्प मॉनिटर पर, इस में जो परिणाम:

मूल रूप से इस SSCCE समस्या का प्रदर्शन करना चाहिए

java.awt.Dimension [चौड़ाई = 1296, ऊंचाई = 1010]

कोई भी जानता है कि यह कैसे हो रहा है? विशेष रूप से तथ्य यह है कि चौड़ाई क्या होनी चाहिए उससे अधिक है।

सम्मान।

+0

java.awt. आयाम [चौड़ाई = 12 9 6, ऊंचाई = 1000] यहां। :) क्या आपका ओएस? –

+0

विंडोज विस्टा 64-बिट, लेकिन अगर यह चौड़ाई = 12 9 6 कहता है तो आपका भी गलत है, है ना? – skiwi

+0

आपकी मॉनीटर क्या है? –

उत्तर

5

खिड़की सीमा शायद 8 पिक्सेल चौड़ा है। अधिकतम करने पर, विंडोज़ विंडो का आकार बदलता है ताकि ग्राहक क्षेत्र को 1280 पिक्सल चौड़ा हो। खिड़की की पूरी चौड़ाई तब 8 + 1280 + 8 पिक्सल = 12 9 6 पिक्सेल है। ऊंचाई के साथ भी यही होता है।

एकाधिक मॉनीटर पर विस्तारित डेस्कटॉप का उपयोग करते समय, कभी-कभी कोई नोटिस कर सकता है कि जब एक स्क्रीन पर एक विंडो को अधिकतम किया जाता है, तो खिड़की की सीमा आसन्न स्क्रीन पर देखी जा सकती है।

2

सुनिश्चित नहीं है कि वहां क्या हो रहा है। आप बस अपने फ्रेम करने के लिए यह उपलब्ध स्क्रीन अचल संपत्ति के आधार पर अधिकतम आकार है स्थापित करने के लिए कोशिश कर रहे हैं, यह विकल्प की कोशिश:

import java.awt.*; 
import javax.swing.*; 

public class JFrameExtended 
{ 
    public static void main(String[] args) 
    { 
    SwingUtilities.invokeLater(new Runnable() 
    { 
     public void run() 
     { 
     GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     Rectangle maxBounds = env.getMaximumWindowBounds(); 

     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setBounds(maxBounds); 
     f.setVisible(true); 
     System.out.println("Frame size: " + f.getSize()); 
     } 
    }); 
    } 
} 
संबंधित मुद्दे