Java Toolkit Első Második képernyő mérete

szavazat
9

Már két képernyő dugva a számítógép, és arra gondoltam, ha volt egy módja JFrame vagy Toolkit kimutatására, hogy melyik képernyő az ablak az?

Én ezt a kódot:

java.awt.Toolkit.getDefaultToolkit().getScreenSize();

Melyik lesz a képernyő mérete a fő képernyőn, de hogyan juthatok mérete a második képernyő, vagy észleli, hogy melyik képernyő az ablak az?

A kérdést 12/06/2011 14:01
a forrás felhasználó
Más nyelveken...                            


4 válasz

szavazat
13

Meg kell venni egy pillantást GraphicsEnvironment .

Különösen getScreenDevices():

Visszaadja egy tömb összes képernyő GraphicsDevice tárgyakat.

Lehet kapni a méreteket azoktól GraphicDevice tárgyak (közvetve getDisplayMode). (Ez az oldal az is kiderül, hogyan, hogy egy keret egy speciális eszközzel.)

És akkor kap egy JFrame annak készülékhez a getGraphicsConfigration()módszer, amely visszaadja a GraphicsConfiguration , hogy van egy getDevice(). (A getIDstring()módszer valószínűleg lehetővé teszi, hogy különbséget tegyenek a képernyőkön.)

Válaszolt 12/06/2011 14:15
a forrás felhasználó

szavazat
1

Ha az itt látható kódot itt lehet végighaladni az összes GraphicsDevices a rendszerben, és megkapják a méreteket. Tekintettel arra, hogy hozzon létre egy JFrame egy adott GraphicsDevice is letölteni az adott GraphicsDevice egy JFrame van a szerzés JFrame Window, amelyben http://download.oracle.com/javase/6/docs/api/java/awt /Window.html#getGraphicsConfiguration () a Window, majd hívja getGraphicsDeviceezt.

Válaszolt 12/06/2011 14:16
a forrás felhasználó

szavazat
7

Nézze meg ezt a szál StackOverflow . A kód az OP használja ezt a kódot:

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());
      }
 }

A kimenet a következő volt:

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 

Tehát láthatjuk, hogy visszatér a két képernyőn. Volt két képernyő 1024x768, elhelyezni egymás mellett. A kód lehet optimalizálni, mivel csak akar szélessége és magassága:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for(GraphicsDevice curGs : gs)
{
      DisplayMode dm = curGs.getDisplayMode();
      System.out.println(dm.getWidth() + " x " + dm.getHeight());
}
Válaszolt 12/06/2011 14:16
a forrás felhasználó

szavazat
0

Egyenesen a kódot, próbálja meg ezt :)

    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
    }
Válaszolt 03/07/2015 17:59
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more