2010-12-25 4 views
2

스윙 GUI 요소 (예 : 일부 JTextField가 포함 된 JPanel) 만 캡처 할 수 있습니까?스윙 GUI 요소를 캡처하는 방법은 무엇입니까?

+1

은 무엇 "캡처"않습니다 의미? 텍스트 필드에서 텍스트를 가져 오시겠습니까? 또는 텍스트 필드의 이미지를 만들 수 있습니까? 아니면 누군가가 tet 필드에 텍스트를 입력하면 알 수 있습니까? 특정 답변을 원하면 질문에 구체적으로 답하십시오. – camickr

+0

내가 의미하는 것은 모든 요소가 포함 된 사용자 인터페이스 (이 경우 JPanel)의 이미지를 얻는 것입니다. – Rendicahya

답변

3

스윙 GUI 요소를 캡처해야하는 다음과 같은 방법

public void captureComponent(JComponent component, File imageFile) throws IOException { 
    BufferedImage bufImage = new BufferedImage(component.getSize().width, component.getSize().height, BufferedImage.TYPE_INT_RGB); 
    component.paint(bufImage.createGraphics()); 
    imageFile.createNewFile(); 
    ImageIO.write(bufImage, "jpeg", imageFile); 
} 
+1

예, "기본"코드이지만 모든 경우에 작동하지 않습니다. 따라서 예외 처리를위한보다 일반적인 솔루션을 제공하려고합니다. 이 질문을보십시오 : http://stackoverflow.com/questions/4515902/how-to-remove-the-title-bar-from-a-jframe-screenshot – camickr

+0

약간의 수정과 함께 작동합니다. 감사. – Rendicahya

2

Screen Image 원하는대로 할 수 있습니다.

+0

좋은 래퍼 클래스에 +1, AWT 클래스에 위의 기술을 사용할 수없는 이유에 대한 설명. – I82Much

관련 문제