0

我正在尝试制作屏幕捕获程序。

我拥有的是一个透明窗口,它将提供要捕获的区域,上面有一个按钮capture,我正在尝试实例化一个captureScreen在使用command prompt.

我试图captureScreen在按下按钮时实例化这个类capture。但这不起作用。captureScreen.java当从这个文件实例化为

captureScreen a = new captureScreen();

System.out.println("Start");甚至不会打印任何东西,尽管从command promptas运行时效果很好

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;
        }

    }
}
4

2 回答 2

3

public int captureScreen(){不是构造函数,它是一个方法,所以调用captureScreen a = new captureScreen()不会激活这个方法。

你可以...

将其更改为构造函数

public captureScreen() {...}

或者你可以...

调用方法...

captureScreen a = new captureScreen();
a.captureScreen();

现在。欢迎来到您应该遵循Java 语言命名约定的原因之一,因为如果您有...

ie 类以大写字符 ie 开头CaptureScreen,这使得构造函数遵循相同的命名public CaptureScreen(){...},方法以小写字符开头。

只是说

于 2013-06-21T08:19:03.777 回答
0

类 captureScreen 具有类似的代码

public int captureScreen(){..}

如果您将其视为构造函数,则不要使用返回类型。

public captureScreen(){..}

如果您认为这是一种方法,请尝试从 actionPerformed 调用此方法。

captureScreen a = new captureScreen();
a.captureScreen();
于 2013-06-21T08:24:09.757 回答