Java JPanel 绘制缩放
以下代码可用于在 JPanel 上可视化分子,但当我在运行时更改 JPanel 的大小时,它不会重新缩放。化学开发套件用于生成渲染图像。分子被传递到 MoleculeViewer 进行可视化。我做错了什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
以下代码可用于在 JPanel 上可视化分子,但当我在运行时更改 JPanel 的大小时,它不会重新缩放。化学开发套件用于生成渲染图像。分子被传递到 MoleculeViewer 进行可视化。我做错了什么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
为什么你需要
setSize(new java.awt.Dimension(400, 400));
将您的
image = new BufferedImage(this.WIDTH, this.HEIGHT, BufferedImage.TYPE_INT_RGB);
设为图标到JLabel,然后您可以删除有关paintComponent()
的任何
然后您可以返回
JLabel
而不是 JPanel,但是JLabel
默认是半透明的,或者把使用正确的 JLabel 添加到JPanel
在本例中为“nofollow">LayoutManager BorderLayout.CENTER你必须检查如何你添加的方式
MoleculeViewer
,使用了什么LayoutManager
???,因为只有使用LayoutManager
才能正确地调整(或不调整)Container的子级大小对于顶级容器,MoleculeViewer
必须为其父级重新调整PreferredSize
why you needed to
setSize(new java.awt.Dimension(400, 400));
put your
image = new BufferedImage(this.WIDTH, this.HEIGHT, BufferedImage.TYPE_INT_RGB);
as Icon to the JLabel, then you can remove anything aboutpaintComponent()
then you can return
JLabel
instead of JPanel, butJLabel
is translucent by default, or putJLabel
to theJPanel
by using proper LayoutManager in this case BorderLayout.CENTERyou have to check how way you added
MoleculeViewer
, whatLayoutManager
is there used???, because only usage ofLayoutManager
can this job correctly to resize (or not resize) Container's childs with Top-Level Container,MoleculeViewer
must retunsPreferredSize
for its parent