Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的屏幕大小_Java_Swing_Awt_Screen Size_Game Development - Fatal编程技术网

Java中的屏幕大小

Java中的屏幕大小,java,swing,awt,screen-size,game-development,Java,Swing,Awt,Screen Size,Game Development,您好,我正在用Java制作一个游戏,我使用DefaultToolkit获得屏幕大小,但问题是,如果是全屏,则会检测屏幕大小。如何获得游戏屏幕(非全屏)所占区域的屏幕大小。更准确地说,我的精灵正在移动到底部屏幕的边缘之外,因为系统工具栏为它添加了额外的“填充”。如何获得游戏屏幕所占区域的大小?非常感谢您可以使用插图获得任务栏的大小和其他内容。下面是一个获取屏幕大小的示例,其中不包括任务栏/其他 // Screen size Dimension screen = Toolkit.getDefault

您好,我正在用Java制作一个游戏,我使用DefaultToolkit获得屏幕大小,但问题是,如果是全屏,则会检测屏幕大小。如何获得游戏屏幕(非全屏)所占区域的屏幕大小。更准确地说,我的精灵正在移动到底部屏幕的边缘之外,因为系统工具栏为它添加了额外的“填充”。如何获得游戏屏幕所占区域的大小?非常感谢

您可以使用插图获得任务栏的大小和其他内容。下面是一个获取屏幕大小的示例,其中不包括任务栏/其他

// Screen size
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

// Screen insets
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration());

// Get the real width/height
int width = screen.getWidth() - insets.left - insets.right;
int height = screen.getHeight() - insets.top - insets.bottom;

您可以使用插图获得任务栏和其他内容的大小。下面是一个获取屏幕大小的示例,其中不包括任务栏/其他

// Screen size
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

// Screen insets
Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(getGraphicsConfiguration());

// Get the real width/height
int width = screen.getWidth() - insets.left - insets.right;
int height = screen.getHeight() - insets.top - insets.bottom;

我认为屏幕边界是您要寻找的:

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

public class FrameInfo
{
    public static void main(String[] args)
    {
        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle bounds = env.getMaximumWindowBounds();
        System.out.println("Screen Bounds: " + bounds );

        GraphicsDevice screen = env.getDefaultScreenDevice();
        GraphicsConfiguration config = screen.getDefaultConfiguration();
        System.out.println("Screen Size  : " + config.getBounds());
        System.out.println(Toolkit.getDefaultToolkit().getScreenSize());

        JFrame frame = new JFrame("Frame Info");
        frame.setSize(200, 200);
        frame.setVisible( true );

        System.out.println("Frame Size   : " + frame.getSize() );
        System.out.println("Frame Insets : " + frame.getInsets() );
        System.out.println("Content Size : " + frame.getContentPane().getSize() );
     }
}

我认为屏幕边界是您要寻找的:

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

public class FrameInfo
{
    public static void main(String[] args)
    {
        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle bounds = env.getMaximumWindowBounds();
        System.out.println("Screen Bounds: " + bounds );

        GraphicsDevice screen = env.getDefaultScreenDevice();
        GraphicsConfiguration config = screen.getDefaultConfiguration();
        System.out.println("Screen Size  : " + config.getBounds());
        System.out.println(Toolkit.getDefaultToolkit().getScreenSize());

        JFrame frame = new JFrame("Frame Info");
        frame.setSize(200, 200);
        frame.setVisible( true );

        System.out.println("Frame Size   : " + frame.getSize() );
        System.out.println("Frame Insets : " + frame.getInsets() );
        System.out.println("Content Size : " + frame.getContentPane().getSize() );
     }
}

然后使用
gameScreen.getSize()
作为绘图区域的尺寸。@Anderthompson假设框架未装饰,否则,您会希望使用容器的size@MadProgrammer我假设
gameScreen
是“游戏渲染/绘制区域”,OP从
JComponent
JPanel
扩展到框架的内容窗格中(或设置为)。也许我应该说得更清楚些@AndrewThompson现在是:DUse,然后是
gameScreen.getSize()
,用于绘制区域的尺寸。@AndrewThompson假设框架未装饰,否则,您会希望使用容器的size@MadProgrammer我假设
gameScreen
是“游戏渲染/绘制区域”,OP从
JComponent
JPanel
扩展到框架的内容窗格中(或设置为)。也许我应该说得更清楚些@AndrewThompson现在是:假设OP使用的窗口没有装饰,否则您只需要使用容器的大小。但是这可以用来设置窗口的大小,首先+1假设OP使用的窗口没有装饰,否则您只需要使用容器的大小。但这可以用来设置窗口的大小,首先是+1