Java JPanel Paint Scaling

时间:2011-10-01 19:19:49

标签: java swing resize jpanel graphics2d

以下代码工作用于在JPanel上可视化分子,但在运行时更改JPanel的大小时不会重新缩放。 Chemistry Development Kit用于生成渲染图像。将分子传递给MoleculeViewer进行可视化。我做错了什么?

2 个答案:

答案 0 :(得分:2)

What am I doing wrong??
  • 为什么需要setSize(new java.awt.Dimension(400, 400));

  • image = new BufferedImage(this.WIDTH, this.HEIGHT, BufferedImage.TYPE_INT_RGB); Icon作为JLabel添加到JPanel,然后您可以移除有关paintComponent()

  • 的所有内容
  • 然后您可以返回JLabel而不是LayoutManager,但默认情况下JLabel是半透明的,或者JLabel使用JPanel在这种情况下BorderLayout.CENTER

  • 正确Top-Level Container
  • 您必须检查添加MoleculeViewer的方式,LayoutManager使用了什么???,因为只有LayoutManager的使用才能正确调整此作业的大小(或没有调整大小)容器的孩子{{3}},

  • MoleculeViewer必须为其父级重新PreferredSize

答案 1 :(得分:0)

Adding following resolved the not redrawing upon scaling problem 

renderer.paint(molecule_, new AWTDrawVisitor(g2), new Rectangle2D.Double(0, 0, w, h), false);
            g2.dispose();
            }
            else