Java - 全屏和窗口模式

时间:2014-06-25 14:54:50

标签: java jframe fullscreen draw windowed

如果我在两种模式之间切换并绘制内容以调整它们是否有可能,那么在窗口模式下,事物似乎被绘制为全屏模式但实际上更小...

这就是我的代码:

构造: GraphicsEnvironment gfxEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();

GraphicsDevice gfxDevice = gfxEnvironment.getDefaultScreenDevice();

private boolean fullscreen = true; //不是那么喜欢

if(answer == JOptionPane.YES_OPTION){

        setUndecorated(true);
        setAlwaysOnTop(true);
        DisplayMode getMode = gfxDevice.getDisplayMode();
        DisplayMode displayMode = new DisplayMode(getMode.getWidth(), getMode.getHeight(), getMode.getBitDepth(), getMode.getRefreshRate());
        gfxDevice.setFullScreenWindow(Frame.this);
        gfxDevice.setDisplayMode(displayMode);
        fullscreen = true;
    } else {
        setUndecorated(false);
        setVisible(true);
        setSize(800, 600);
        setLocationRelativeTo(null);
        setResizable(false);
        fullscreen = false;
    }

切换屏幕:if(全屏){

        dispose();
        setUndecorated(false);
        gfxDevice.setFullScreenWindow(null);
        setSize(800, 600);
        setLocationRelativeTo(null);
        setVisible(true);
        fullscreen = false;
    } else {
        setVisible(false);
        dispose();
        setUndecorated(true);
        gfxDevice.setFullScreenWindow(Frame.this);
        fullscreen = true;
    }

draw:private void draw(Graphics g){

    g.setColor(Color.RED);
    g.fillRect(0, 0, 400, 800);
}

那么如何调整Rect呢? 感谢:)

1 个答案:

答案 0 :(得分:0)

您可以根据屏幕尺寸绘制矩形图。因此,使用java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().width;java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height;将其基于窗口宽度和高度的一小部分 而不是固定的像素值。