2012-02-13 20 views
6

मैं यूट्यूब पर तत्कालीन वेब द्वारा जावा में गेम डेवलपमेंट पर ट्यूटोरियल की एक श्रृंखला का अनुसरण कर रहा हूं। मैं उस बिंदु पर हूं जहां मैं एक पूर्णस्क्रीन विंडो बना सकता हूं, लेकिन संकल्प 800x600 का आकार बदलने से इंकार कर देता है। मैंने वीसी, एक ग्राफिक्सइन्वायरमेंट .getDefaultScreenDevice ऑब्जेक्ट, और डीएम, डिस्प्लेमोड का परीक्षण किया है, और वे समस्या नहीं प्रतीत होते हैं। मैं हिम तेंदुए चला रहा हूँ। कोई विचार?जावा स्क्रीन रेज़ोल्यूशन चेंज

if(dm != null && vc.isDisplayChangeSupported()){ 
     try{ 
      vc.setDisplayMode(dm); 
      System.out.println("Display mode set"); 
     }catch(Exception ex){System.out.println("Despite the vc saying it is display change supported and the DM is not null, something went wrong");} 

    } 
} 
+1

क्या यह कोड निष्पादित होने पर आपको अपवाद मिलता है? यदि ऐसा है, तो 'ex.getMessage() 'या' ex.printStackTrace() ' –

+0

के साथ त्रुटि संदेश को प्रिंट करने का प्रयास करें इसी प्रकार कोड तेंदुए पर काम करता है। यह आपके प्रश्न को संपादित करने में मदद कर सकता है [sscce] (http://sscce.org/) जो आपके द्वारा वर्णित समस्या को प्रदर्शित करता है। – trashgod

+0

@Hunter McMillen: नहीं, मुझे कोई त्रुटि संदेश नहीं मिला है। माफ़ कीजिये। –

उत्तर

1

यह कोड अपने Core.java (या GameClient.java) कक्षा में जोड़ें। मुद्दा यह हो सकता है कि आप अपने ScreenManager.java कक्षा में आवश्यक डीएम [] तर्कों को पार नहीं कर रहे हैं।

private static final DisplayMode modes[] = { //common monitor DMs 
    new DisplayMode(1366,768,32, DisplayMode.REFRESH_RATE_UNKNOWN), //1366x768px w/32-bit depth 
    new DisplayMode(1366,768,24, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/24-bit depth 
    new DisplayMode(1366,768,16, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/16-bit depth  
    new DisplayMode(800,600,32, DisplayMode.REFRESH_RATE_UNKNOWN), //800x600px w/32-bit depth 
    new DisplayMode(800,600,24, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/24-bit depth 
    new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/16-bit depth 
    new DisplayMode(640,480,32, DisplayMode.REFRESH_RATE_UNKNOWN), //640x480px w/32-bit depth 
    new DisplayMode(640,480,24, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/24-bit depth 
    new DisplayMode(640,480,16, DisplayMode.REFRESH_RATE_UNKNOWN), // '  w/16-bit depth 
}; 

मैं यह सोचते हैं रहा है कि त्रुटि अपने सार्वजनिक शून्य setFullScreen (DisplayMode डीएम) विधि के साथ है। उस मामले में, इस विधि के लिए पूर्ण वाक्य रचना है:

/***************************************************************************** 
* @description: Creates window for program to run in, using appropriate DM 
* @param DisplayMode dm 
*/ 
    public void setFullScreen(DisplayMode dm){ 
     JFrame f = new JFrame(); 
     f.setUndecorated(true); //no titlebars/scroll bars etc. 
     f.setIgnoreRepaint(true); 
     f.setResizable(false); //user cannot resize window 
     vc.setFullScreenWindow(f); 

     if(dm!=null && vc.isDisplayChangeSupported()){ //if DM is changeable 
      try { 
       vc.setDisplayMode(dm); 
      } catch (Exception e){/*Catch 'em all*/} 
     } 
     f.createBufferStrategy(2); //set # of screen buffers to 2 
    }//setFullScreen() 

देखा इस पोस्ट करने के बाद एक हल्के necro पोस्ट किया गया था। आह ...

संबंधित मुद्दे