You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX实现Mac系统全屏截图异常问题求助

JavaFX实现Mac系统全屏截图异常问题求助

我有一个已在线部署的应用,目前仅能在Windows系统上正常运行。现在我想让它也兼容Mac OS,但遇到了一个棘手的问题:所有处于最大化状态的应用(比如Finder或者IDE本身)都无法被捕获到,截图里只有桌面背景(效果对应下面代码运行后的截图)。

我希望截图能包含所有打开的或最大化的应用,但用下面的代码实现不了这个需求。

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.geometry.Rectangle2D;
import javafx.stage.Screen;
import javafx.stage.Stage;
import java.awt.Robot;

public class ScreenCapture extends Application {

    @Override
    public void start(Stage primaryStage) {
        captureScreenshot();
    }

    private void captureScreenshot() {
        List<Screen> screens = Screen.getScreens();
        for (int i = 0; i < screens.size(); i++) {
            Screen screen = screens.get(i);
            Rectangle2D bounds = screen.getBounds();
            Robot robot = new Robot();
            WritableImage screenshot = robot.getScreenCapture(null, bounds);
            BufferedImage image = SwingFXUtils.fromFXImage(screenshot, null);
            try {
                ImageIO.write(image, "png", new File("screenshot" + i + ".png"));
            } catch (IOException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

我已经在谷歌、YouTube甚至ChatGPT上搜遍了相关解决方案,但都没找到能解决这个问题的办法,恳请各位大佬帮忙指点一下!

备注:内容来源于stack exchange,提问作者Kent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:32:59