webForumDet fria alternativet

Ta reda på skärmens upplösning

Java

2 svar · 460 visningar · startad av Rex Nemo

Medlem sedan mars 200225 inlägg
Frågan#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

Medlem 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.*

Medlem 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

253 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)