我正在创建一个库,应用程序可以使用它来捕获选定的屏幕并将其转换为图像,如Gyazo。
这个库不是应用程序本身,而只是将File或BufferedImage对象返回给应用程序的工具。
我希望应用程序很简单:
Bootstrap b = new Boostrap(new GifCapturer());
b.beginCapture(); // user selects an area
File file = b.getFile();
但是如何使应用程序等到库返回对象?如您所见,beginCapture
方法应该激活JFrame,用户将选择要捕获的区域。
我需要睡觉吗?或使用听众设计?
beginCapture方法启动一个jframe窗口,用户可以在其中选择屏幕区域。选择后,库会将所选区域转换为对象并将其设置为局部变量。因此,当您使用getFile时,它将返回捕获的图像。但问题是,我需要确保在执行getFile调用之前选择了图像,然后等待,但我不确定如何。
对不起,如果问题不详细,我打电话。 如果您需要更多信息,请与我们联系。
答案 0 :(得分:0)
实现一个侦听器,在选择准备就绪后立即调用。将您的File file = b.getFile();
代码放入监听器。
您的JFrame代码有必要提供更详细的答案。
答案 1 :(得分:0)
我决定使用一个具有自己构建的侦听器类和接口的侦听器。 创建一个用于获取数据的接口,或者在监听器被调用时知道的接口,就像我的情况一样:
public static void main(String[] args) throws AWTException {
Bootstrap b = new Bootstrap(new GifCapturer());
b.beginCapture(new ScreenCaptureCallback() {
@Override
public void captureEnded(File file) {
System.out.println("done!");
}
});
}