Java Swing; Java GraphicsConfiguration.getBounds()返回0的问题

时间:2010-09-24 17:33:40

标签: java swing

似乎GraphicsConfiguration类的.getBounds()方法没有报告正确的值。

   GraphicsDevice[] gdArr = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();

        int width = 0;
        for (GraphicsDevice gd : gdArr)
        {
            if (gd.getType() == gd.TYPE_RASTER_SCREEN)                                                
                System.out.println("Value is: " + gd.getDefaultConfiguration().getBounds().getX());                
        }            

我有两台显示器:运行1920 * 1080和1280 * 1080。

我得到以下值:

for .getX()我得到了:

Value = 1920
Value = 0

表示.getY()我得到了:

Value = 0
Value = 0

我正在使用Nvidia的Twinview在Linux平台上运行。这是Swing之外的错误吗?

1 个答案:

答案 0 :(得分:3)

这不是错误。值是正确的。

您正在获取每个屏幕的边界,然后您将获得每个边界的X和Y坐标,这是左上角的坐标。 GraphicsConfiguration.getBounds()返回定义屏幕边界的RectangleRectangle.getX()Rectangle.getY()返回矩形左上角的坐标。 Rectangle.getWidth()Rectangle.getHeight()返回大小。

你有两台显示器。以下是每个监视器的界限:

1: X = 0   , Y = 0, Width = 1920, Height = 1080
2: X = 1920, Y = 0, Width = 1280, Height = 1080