2017-03-07 50 views
1

下面的代码将在图像图形上绘制他的组件 - 但它会翻译它 - 而不是将其安装到图形的大小。分享图像画在比屏幕本身更大的图形上

int ratio = 2; 
Image screenshotImage = Image.createImage(getWidth()* ratio,getHeight()* ratio); 
c.revalidate(); 
c.setVisible(true); 
c.paintComponent(screenshotImage.getGraphics(), true); 

我不能使用图片,只是缩放它,因为一些内容将被截断。 组件能否以指定尺寸在图像图形上自行绘制图像。

非常感谢

回答

0

用途:

c.setX(0); 
c.setY(0); 
c.setWidth(img.getWidth()); 
c.setHeight(img.getHeight()); 
if(c instanceof Container) { 
    c.setShouldLayout(true); 
    c.layoutContainer(); 
} 
c.remove(); 
c.paintComponent(myImage.getGraphics(), true); 
// add c back to it's parent container and revalidate 

如果该组件目前是一个形式,你想通过调用重新验证父窗体上之后撤消了这一切。

+0

setShouldLayout是受保护的,所以我创建了新的容器类,方法是覆盖并添加一个方法将所有代码。不工作。 – Goran

+0

Yeha我复制并粘贴setWidth/Height为0.现在修复。 –

+0

要好得多 - 它在图像上绘制组件 - 但只剪辑屏幕可见 - 我们可以完全掌握它吗? – Goran