我正在尝试将特定的jInternalFrame
保存为图片。内部框架位于jFrame
中jTabbedPane
中的jTabbedPane
中。除了内部框架的50%以外,读数还可以。它不想显示其余的读数,因此没有错误。我想扩大图像的视野...有人可以帮我吗?
这是通过单击式侦听器激活的方法:
private void tallennus() {
setContentPane(jInternalFrame1);
this.pack();
Dimension size = jInternalFrame1.getSize();
BufferedImage image = new BufferedImage(size.width, (int)PageSize.A4.getHeight()+(int)PageSize.A4.getHeight(),
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(jInternalFrame1.getX(),jInternalFrame1.getY(),size.width,(int)PageSize.A4.getHeight() + (int)PageSize.A4.getHeight());
g2.fillRect(jInternalFrame1.getX(),jInternalFrame1.getY(),size.width,(int)PageSize.A4.getHeight() + (int)PageSize.A4.getHeight());
g2.scale(1, 0.75);
super.setPreferredSize(size);
super.paintComponents(g2);
最佳答案
不要使用paintComponents(
绘画)使用paintComponent()
不要通过直接使用JInternalFrame在paintComponent()上绘制背景
放在JPanel或JComponent
如果只想显示图像,则将图像加载为Icon和JLabel
使用CardLayout代替JInternalFrames
对于真正的分析者,请尽快使用SSCCE编辑您的问题