我有一个部分,我的应用程序,需要一个截某个窗口,但在我这样做之前,我想要把窗户前面。这一工作现在我Mac机但当我测试了它在Windows XP上的相似之处的截图总是有一个灰色区域重叠的窗口。它似乎截图总是同时采取的窗口,我希望上是被转移到顶峰。我已经尝试采用这两种:

     frame.setVisible(true);
            and
     frame.setAlwaysOnTop(true);

任何人都不会有一个合理的解决方案这一问题?

有帮助吗?

解决方案

如果你正在尝试采取在Java画一个窗口w的截图,你可以要求它油漆本身在

BufferedImage bi = new BufferedImage(
    w.width, w.height, BufferedImage.TYPE_INT_RGB); 
Graphics g = bi.getGraphics();

通过调用Windows' paint(g)方法。然后,您可以在BufferedImage中保存到一个文件。如果你抓一个对外窗口,那么我相信奥斯卡雷耶斯给你所有的答案。

其他提示

  • 你可以添加一个延迟的线程,需要。

  • 你可以开火的截图框架时,它已经获得的重点:

    class ScreenshotShooter implements FocusListener  {
        public void focusGained( FocusEvent e ) {
            // smile..... 
            // you may add a sec of delay here just be be sure.
        }
        public void focusLost( FocusEvent e ) {}
     }
    
    
     FocusListener focusListener = new ScreenshotShooter();
     frame.addFocusListener( focusListener );
     frame.setVisible( true ); // should autofire
     frame.remoe( focusListener);
    
  • 你可以做两个。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top