Java JPanel绘制缩放
以下代码用于可视化JPanel上的分子,但当我在运行时更改JPanel的大小时,它不会重新缩放。化学显影工具包用于生成渲染图像。一个分子被传送到MoleculeViewer进行可视化。我做错了什么Java JPanel绘制缩放,java,swing,resize,jpanel,graphics2d,Java,Swing,Resize,Jpanel,Graphics2d,以下代码用于可视化JPanel上的分子,但当我在运行时更改JPanel的大小时,它不会重新缩放。化学显影工具包用于生成渲染图像。一个分子被传送到MoleculeViewer进行可视化。我做错了什么 What am I doing wrong?? 为什么需要setSize(新java.awt.Dimension(400400)) 将您的image=newbufferedimage(this.WIDTH,this.HEIGHT,BufferedImage.TYPE\u INT\u RGB)对于,
What am I doing wrong??
- 为什么需要
setSize(新java.awt.Dimension(400400))代码>
- 将您的
image=newbufferedimage(this.WIDTH,this.HEIGHT,BufferedImage.TYPE\u INT\u RGB)代码>对于,则可以删除有关
paintComponent()的任何内容
- 然后,您可以返回
而不是,但是JLabel
在默认情况下是半透明的,或者在这种情况下使用property将JLabel
放入JLabel
JPanel
- 您必须检查如何添加
,使用了什么molecleviewer
,因为只有使用LayoutManager
才能正确调整(或不调整)容器的子对象的大小LayoutManager
必须为其父级重新运行MolecleViewer
PreferredSize
图像
或缓冲图像
,则可以调整图像大小。当然,通过API生成所需大小的映像将获得更好的结果,但这是您和API之间的事。同样的结果。我可以清楚地看到ResizeListener正确设置了图像的尺寸。但实际的分子结构停留在第一个尺寸。
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