Java Toolkit获取第二屏幕大小

| 我的计算机上插入了两个屏幕,并且想知道JFrame或Toolkit中是否可以检测窗口在哪个屏幕上? 我有以下代码:
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
哪个获取主屏幕的屏幕尺寸,但是如何获取第二个屏幕的尺寸或检测该窗口位于哪个屏幕上?     
已邀请:
        您应该看一下GraphicsEnvironment。 特别是
getScreenDevices()
:   返回所有屏幕GraphicsDevice对象的数组。 您可以从那些GraphicDevice对象中获取尺寸(通过
getDisplayMode
间接获得)。 (该页面还显示了如何在特定设备上放置框架。) 您可以通过
getGraphicsConfigration()
方法从JFrame到其设备,该方法返回一个具有
getDevice()
的GraphicsConfiguration。 (使用ѭ5probably方法可以区分屏幕。)     
        在StackOverflow上检出此线程。 OP中的代码使用以下代码:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for(GraphicsDevice curGs : gs)
{
      GraphicsConfiguration[] gc = curGs.getConfigurations();
      for(GraphicsConfiguration curGc : gc)
      {
            Rectangle bounds = curGc.getBounds();

            System.out.println(bounds.getX() + \",\" + bounds.getY() + \" \" + bounds.getWidth() + \"x\" + bounds.getHeight());
      }
 }
输出为:
0.0,0.0 1024.0x768.0 
0.0,0.0 1024.0x768.0 
0.0,0.0 1024.0x768.0 
0.0,0.0 1024.0x768.0 
0.0,0.0 1024.0x768.0 
0.0,0.0 1024.0x768.0 
1024.0,0.0 1024.0x768.0 
1024.0,0.0 1024.0x768.0 
1024.0,0.0 1024.0x768.0 
1024.0,0.0 1024.0x768.0 
1024.0,0.0 1024.0x768.0 
1024.0,0.0 1024.0x768.0 
因此,您可以看到它返回了两个屏幕。他有两个1024x768的屏幕,彼此相邻放置。 可以优化代码,因为您只需要宽度和高度:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for(GraphicsDevice curGs : gs)
{
      DisplayMode dm = curGs.getDisplayMode();
      System.out.println(dm.getWidth() + \" x \" + dm.getHeight());
}
    
        如果使用此处显示的代码,则可以遍历系统中的所有ѭ9并获取其尺寸。假设您可以在特定的GraphicsDevice上创建JFrame,则还可以通过获取JFrame的窗口并调用http://download.oracle.com/javase/6/docs/api/来获取JFrame所在的特定GraphicsDevice。在窗口上执行java / awt / Window.html#getGraphicsConfiguration(),然后在其上调用calling10。     
        直接找到代码,试试这个:)
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice[] gs = ge.getScreenDevices();
    for (int i = 0; i < gs.length; i++) {
        System.out.println(gs[i].getDisplayMode().getWidth()+\" \"+gs[i].getDisplayMode().getHeight());

        //System.out.println(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
        // to check default resolution of the device
    }
    

要回复问题请先登录注册