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
2 svar · 460 visningar · startad av Rex Nemo
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
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.*