我有一个Java应用程序,在eclipse中开发并带有一个exe包装器。它在win 7桌面上全屏运行,但在带有Intel HD Graphics 4000的Win 8表面(原始)上运行。当在表面上运行时,它周围都有黑色空间。我找到了多个更新图形驱动程序的参考,以获得有关屏幕如何缩放的额外选项。当我尝试安装时,英特尔的最新驱动程序被拒绝。如果我尝试通过设备管理器进行更新,它说我是最新的。寻找任何建议/信息。谢谢。
---加上---
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.在重新安装我的额外内容后,应用程序全屏运行。直到它崩溃,我不得不在任务管理器中杀死它。之后它又回到了全屏。显然有些东西被调整或从那次运行中带走了。不是解决方案,而是一个重要的领导者。