我正在尝试制作一个屏幕截图程序。
我所拥有的是一个透明窗口,它将为其捕获区域,上面有一个按钮capture
,我试图实例化一个单独的captureScreen
类使用command prompt
在单独的文件中执行。
我试图在按下captureScreen
按钮时实例化此capture
类。
但这不起作用。
当从这个文件中实例化为
captureScreen.java
分离不起作用
captureScreen a = new captureScreen();
System.out.println("Start");
甚至不会打印任何内容,但在从command prompt
作为
java captureScreen
以下是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();
System.out.println("Donesssssss");
}
}
}
class captureScreen extends Object{
public int captureScreen(){
...
Robot robot = new Robot();
BufferedImage image = robot.createScreenCapture(screenRectangle);
ImageIO.write(image, "png", new File(filename));
System.out.println("Done");
return 1;}
catch(AWTException ex)
{
System.out.println("Error"+ex);
return 1;
}
catch(IOException ex)
{
System.out.println("Error"+ex);
return 1;
}
}
}
答案 0 :(得分:3)
public int captureScreen(){
不是构造函数,它是一个方法,因此调用captureScreen a = new captureScreen()
不会激活此方法。
更改它以使其成为构造函数
public captureScreen() {...}
调用方法......
captureScreen a = new captureScreen();
a.captureScreen();
现在。欢迎来到你应该关注naming conventions for the Java language的原因之一,因为如果你有...,你可以区分方法和构造函数。
ie类以大写字符CaptureScreen
开头命名,这使得构造函数遵循相同的命名public CaptureScreen(){...}
,方法以小写字符开头。
只是说
答案 1 :(得分:0)
类captureScreen,其代码类似于
public int captureScreen(){..}
如果您将此视为构造函数,则不要使用返回类型。
public captureScreen(){..}
如果您将此视为一种方法,请尝试从actionPerformed中调用此方法。
captureScreen a = new captureScreen();
a.captureScreen();