-1

私は jung (java) を使用して、背景に円を描画しようとしています。出力が得られず、なぜ機能しないのか疑問に思っています。

PreRenderPaintable と PostRenderPaintable を使用していますが、まだ結果が得られません。

        vv.addPreRenderPaintable(new VisualizationViewer.Paintable() {

        public void paint(Graphics g) 
        {
               System.out.println("PRE RENDER");
               System.out.println("vv.getComponentCount()= " + vv.getComponentCount());

            Graphics2D      g2d         = (Graphics2D)g;
            AffineTransform oldXform    = g2d.getTransform();
            AffineTransform lat         = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT).getTransform();
            AffineTransform vat         = vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW).getTransform();
            AffineTransform at          = new AffineTransform();
            at.concatenate(g2d.getTransform());
            at.concatenate(vat);
            at.concatenate(lat);
            g2d.setTransform(at);

            g.drawOval(100, 100, 150, 150);

            g.drawString("adsadd", 200, 200);

            g2d.setTransform(oldXform);
        }

        public boolean useTransform() { return false; }
    });

vv.addPostRenderPaintable(new VisualizationViewer.Paintable()
    {
        public void paint(Graphics g)
        {
            System.out.println("POST RENDER");
            System.out.println("vv.getComponentCount()= " + vv.getComponentCount());
            Component comp = vv.getComponent(0);
            System.out.println(comp);
            System.out.println(comp.getClass());

            g.drawString("adasasdsadasdsadsadasdasdsadd", 300, 300);
        }

        public boolean useTransform() 
        {
            return false;
        }
    });
4

1 に答える 1

0

問題は、出力の色を設定していませんでした。例えば:

  g.setFont(font);
  Color oldColor = g.getColor();
  g.setColor(Color.lightGray);
于 2013-04-13T14:52:31.403 に答える