我正在尝试将特定的jInternalFrame保存为图片。内部框架位于jFramejTabbedPane中的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()
不要通过直接使用JInternalFramepaintComponent()上绘制背景
放在JPanelJComponent
如果只想显示图像,则将图像加载为IconJLabel
使用CardLayout代替JInternalFrames
对于真正的分析者,请尽快使用SSCCE编辑您的问题

10-01 06:14