我正在尝试制作一个屏幕截图程序。
我所拥有的是一个透明窗口,它将使用一个按钮capture
来捕获该区域,并且我正在尝试实例化一个在{{captureScreen
时运行良好的类captureScreen
1}}使用命令提示符单独执行
我试图在按下captureScreen
按钮时实例化此capture
类。
我尝试将此class
保留在screenrecord.java
上,同时将代码放在event listener
中。在这两种情况下,我都会遇到这些错误
AWTException,must be caught or declared
在
Robot robot = new Robot();
和BufferedImage image
行中的IOException。
保持captureScreen.java
分开无效。System.out.println("Start");
甚至不会打印任何内容。
这是我的screenrecord.java
代码
public class screenrecord extends JFrame implements ActionListener{
public screenrecord() {...
}
public void actionPerformed(ActionEvent e){
if ("record".equals(e.getActionCommand())) {
captureScreen a = new captureScreen();
}
}
}
captureScreen.java
,单独运作。
public class captureScreen extends Object{
public static void main(String args[]){
...
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(filename));
System.out.println("Done");
}
}
欢迎并赞赏您的所有建议,意见,建议。 请帮我解决这个问题。感谢。
答案 0 :(得分:4)
您需要使用try / catches。这些不是错误,而是警告。例如,在具有AWTException的代码周围插入它:
try
{
//code causing AWTException
Robot robot = new Robot();
}
catch(AWTException e)
{
System.out.println("Error"+e);
}
和
try
{
//code causing IOException
BufferedImage image = robot.createScreenCapture(screenRectangle);
}
catch(IOException e)
{
System.out.println("Error"+e);
}
或两者结合:
try
{
//code causing AWTException or IOException
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
}
catch(IOException e)
{
System.out.println("Error"+e);
}
catch(AWTException e)
{
System.out.println("Error"+e);
}
如需进一步阅读,这可能有助于澄清例外情况:
http://docs.oracle.com/javase/tutorial/essential/exceptions/definition.html
答案 1 :(得分:0)
适用于编辑captureScreen.java
as,
public class captureScreen extends Object{
public captureScreen() {
....
filename = ".\\out.png";
try{Robot robot = new Robot();
............ }
catch(Exception e) /* Catch Exceptions too */
{
System.out.println("Error"+e);
}
}
public static void main(String args[]){
new captureScreen();
}
}
使用main来实例化另一个函数。