Java JPanel Paint Scaling - PullRequest
       23

Java JPanel Paint Scaling

0 голосов
/ 01 октября 2011

Следующий код работает для визуализации молекулы на JPanel, за исключением того, что она не масштабируется, когда я изменяю размер JPanel во время выполнения.Комплект для разработки химии используется для создания визуализированного изображения.Молекула передается в MoleculeViewer для визуализации.Что я делаю не так ??

Ответы [ 2 ]

2 голосов
/ 01 октября 2011
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, тогда вы можете удалить что-нибудь о paintComponent()

  • , тогда вы можете вернуть JLabel вместо JPanel , но JLabel по умолчанию является полупрозрачнымили положите JLabel на JPanel, используя LayoutManager , в данном случае BorderLayout.CENTER

  • , вы должны проверить, каккак вы добавили MoleculeViewer, что LayoutManager там используется ???, потому что только использование LayoutManager может правильно выполнить эту задачу для изменения размера (или не изменения размера) дочерних элементов Контейнера с Контейнером верхнего уровня ,

  • MoleculeViewer должен повторно PreferredSize для своего родителя

0 голосов
/ 27 октября 2011
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
...