【问题标题】:Java Swing; Problems with Java GraphicsConfiguration.getBounds() returning 0爪哇摇摆; Java GraphicsConfiguration.getBounds() 返回 0 的问题
【发布时间】:2010-09-25 01:43:35
【问题描述】:

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。

我得到以下值:

对于 .getX() 我得到:

Value = 1920
Value = 0

对于 .getY() 我得到:

Value = 0
Value = 0

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

【问题讨论】:

    标签: java swing


    【解决方案1】:

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

    你得到了每个屏幕的边界,然后你得到了每个边界的 X 和 Y 坐标,也就是左上角的坐标。 GraphicsConfiguration.getBounds() 返回定义屏幕边界的RectangleRectangle.getX()Rectangle.getY() 返回矩形左上角的坐标。 Rectangle.getWidth()Rectangle.getHeight() 返回大小。

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

    1:X = 0,Y = 0,宽度 = 1920,高度 = 1080 2:X = 1920,Y = 0,宽度 = 1280,高度 = 1080

    【讨论】:

    • +1。 Rectangle 实现了 toString,所以请尝试System.out.println(...getBounds()); 来查看整个交易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    相关资源
    最近更新 更多