以下代码工作用于在JPanel上可视化分子,但在运行时更改JPanel的大小时不会重新缩放。 Chemistry Development Kit用于生成渲染图像。将分子传递给MoleculeViewer进行可视化。我做错了什么?
答案 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
您必须检查添加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