webForumDet fria alternativet

Ta reda på skärmens upplösning

2 svar · 460 visningar · startad av Rex Nemo

Rex NemoMedlem sedan mars 200225 inlägg
#1

Hej!
Jag vill placera en frame mitt på skärmen, och behöver veta skärmens upplösning.
Hur tar jag reda på vilken upplösning som skärmen har?
Finns det någon färdig funktion för att centrera ett objekt på skärmen oavsett upplösning?

MVH Rex

jmeMedlem sedan maj 20012 237 inlägg
#2

JFrame frame = new JFrame();
ToolKit kit = frame.getToolkit();

Dimension size = kit.getScreenSize();

Ett enkelt sätt att få reda på den upplösning som används just nu.

int width = size.width;
int height = size.height;

För mer avancerad kontroll och inställningar av skärmens upplösningar så kika på klasserna GraphicsConfiguration, GraphicsDevice och DisplayMode. Se Java API docs.

Med hjälp av bl a dessa klasser så kan du ändra på upplösningen, bitdjup samt refresh-rate.

Kör denna kod:

---

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

public class ChangeDepth
{
JFrame frame;
GraphicsEnvironment ge;
GraphicsConfiguration gc;
GraphicsDevice[] devices;
GraphicsDevice gd;
DisplayMode[] modes;
DisplayMode dm;
public ChangeDepth()
{
frame = new JFrame();

	ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
	
	devices = ge.getScreenDevices();
	
	for(int i = 0; i \< devices.length; ++i)
	{
		gd = devices*;
		
		modes = gd.getDisplayModes();
		
		for(int k = 0; k \< modes.length; ++k)
		{
			dm = modes\[k\];
			System.out.println("Width: " + dm.getWidth() + ", Height: " + dm.getHeight() +  ", Bit depth: " + dm.getBitDepth() );
		}
	}
}

public static void main(String\[\] args)
{
	new ChangeDepth();
}

}

---

Koden listar upp alla upplösningar somdin dator klarar av.*

Rex NemoMedlem sedan mars 200225 inlägg
#3

Tack jme för det utförliga svaret, det var mer än jag hade kunnat hoppas på!

MVH Rex

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)