Microsoft Surface上的Java应用程序不是全屏

时间:2015-11-09 18:31:46

标签: java

我有一个Java应用程序,在eclipse中开发并带有一个exe包装器。它在win 7桌面上全屏运行,但在带有Intel HD Graphics 4000的Win 8表面(原始)上运行。当在表面上运行时,它周围都有黑色空间。我找到了多个更新图形驱动程序的参考,以获得有关屏幕如何缩放的额外选项。当我尝试安装时,英特尔的最新驱动程序被拒绝。如果我尝试通过设备管理器进行更新,它说我是最新的。寻找任何建议/信息。谢谢。

---加上---

Surface具有Java 8更新65

public class Fullscreen
{
private static GraphicsDevice _device   = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
private static DisplayMode      _oldMode    = null;

public static   Drawable        _drawable;
public static   BufferStrategy  _bufStrat;
public static   int             _frameCount;
public static   long            _secondTrack;

//==========================================================================
/**
 * Set some video related stuff
 * @param frame         - The App's JFrame
 * @return                  - true if sucessful
 */

public static boolean set( JFrame frame )
{
    frame.setResizable              ( false );
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    if (MainBase._fullScreen) // Is true for this version
    {
        frame.setUndecorated        ( true );
        frame.setIgnoreRepaint  ( true );

        if (MainBase._fullScreen && !_device.isFullScreenSupported())
        {
            System.err.println( "Full screen not supported" );
            return false;
        }

        try
        {
            _device.setFullScreenWindow( frame );
        }
        catch ( Exception e )
        {
            _device.setFullScreenWindow( null );
            System.err.println( "Failed setting full screen" );
            return false;
        }

        _oldMode = _device.getDisplayMode();
        //TODO: what to do about display refresh vs frame rate
        DisplayMode displayMode = new DisplayMode( MainBase._screenW, MainBase._screenH, 32, 60); //MainBase._fps );
        if (displayMode != null && _device.isDisplayChangeSupported())
        {
            try
            {
                _device.setDisplayMode( displayMode );
            }
            catch (Exception e)
            {
                _device.setDisplayMode( _oldMode );
                _device.setFullScreenWindow( null );
                System.err.println( "Failed setting full screen mode" );
                return false;
            }
        }
    }

    //System.out.println( "Display Mode W " + MainBase._screenW + " H " + MainBase._screenH + " BitDepth " + 32 );

    return true;
}

-----重要信息虽然没有解决-----

我尝试将表面更新为Win 10.更新失败。然后我回滚到Win 8.在重新安装我的额外内容后,应用程序全屏运行。直到它崩溃,我不得不在任务管理器中杀死它。之后它又回到了全屏。显然有些东西被调整或从那次运行中带走了。不是解决方案,而是一个重要的领导者。

0 个答案:

没有答案