Java获取屏幕尺寸

在开发Java应用程序时,有时需要获取屏幕的尺寸信息,以便根据屏幕尺寸调整界面布局或进行其他操作。本文将介绍如何使用Java获取屏幕尺寸,并提供相应的代码示例。

1. 使用Toolkit类获取屏幕尺寸

Java提供了Toolkit类来获取与平台相关的图形工具。通过Toolkit类的getDefaultToolkit()方法可以获取Toolkit类的实例,然后通过该实例的getScreenSize()方法可以获取屏幕尺寸信息。

下面是一个使用Toolkit类获取屏幕尺寸的示例代码:

import java.awt.Dimension;
import java.awt.Toolkit;

public class ScreenSizeExample {
    public static void main(String[] args) {
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Dimension screenSize = toolkit.getScreenSize();
        
        int screenWidth = screenSize.width;
        int screenHeight = screenSize.height;
        
        System.out.println("屏幕宽度:" + screenWidth + " 像素");
        System.out.println("屏幕高度:" + screenHeight + " 像素");
    }
}

在上面的示例代码中,首先通过getDefaultToolkit()方法获取Toolkit类的实例,然后使用getScreenSize()方法获取屏幕尺寸信息,并将其保存在Dimension对象screenSize中。最后,通过screenSize对象的widthheight属性获取屏幕的宽度和高度。

运行上述代码,将输出类似以下内容:

屏幕宽度:1920 像素
屏幕高度:1080 像素

2. 使用GraphicsEnvironment类获取屏幕尺寸

除了使用Toolkit类,还可以使用GraphicsEnvironment类来获取屏幕尺寸。GraphicsEnvironment类提供了与图形环境相关的信息和操作。

下面是一个使用GraphicsEnvironment类获取屏幕尺寸的示例代码:

import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;

public class ScreenSizeExample {
    public static void main(String[] args) {
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle screenRect = ge.getMaximumWindowBounds();
        
        int screenWidth = screenRect.width;
        int screenHeight = screenRect.height;
        
        System.out.println("屏幕宽度:" + screenWidth + " 像素");
        System.out.println("屏幕高度:" + screenHeight + " 像素");
    }
}

在上述示例代码中,首先通过getLocalGraphicsEnvironment()方法获取GraphicsEnvironment类的实例,然后使用getMaximumWindowBounds()方法获取屏幕尺寸的矩形对象screenRect。最后,通过screenRect对象的widthheight属性获取屏幕的宽度和高度。

运行上述代码,输出的结果与前面的示例相同。

3. 使用JavaFX获取屏幕尺寸

如果你使用的是JavaFX来开发界面,那么可以使用Screen类来获取屏幕尺寸。Screen类提供了与屏幕相关的信息和操作。

下面是一个使用JavaFX获取屏幕尺寸的示例代码:

import javafx.application.Application;
import javafx.stage.Screen;
import javafx.stage.Stage;

public class ScreenSizeExample extends Application {
    @Override
    public void start(Stage primaryStage) {
        Screen screen = Screen.getPrimary();
        javafx.geometry.Rectangle2D bounds = screen.getBounds();
        
        double screenWidth = bounds.getWidth();
        double screenHeight = bounds.getHeight();
        
        System.out.println("屏幕宽度:" + screenWidth + " 像素");
        System.out.println("屏幕高度:" + screenHeight + " 像素");
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

在上述示例代码中,首先创建一个JavaFX应用程序,并重写start()方法。在start()方法中,通过getPrimary()方法获取主屏幕对象screen,然后使用getBounds()方法获取屏幕尺寸的矩形对象bounds。最后,通过bounds对象的getWidth()getHeight()方法获取屏幕的宽度和高度。

运行上述代码,输出的结果与前面的示例相同。

结语

通过上述示例,我们了解了如何