My favorites | Sign in
Project Logo
                
Search
for
Updated Jan 01, 2009 by aalmiray
SceneExampleBalloon  

package org.kordamp.jsilhouette.scenegraph;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.sun.scenario.scenegraph.*;
import org.kordamp.jsilhouette.geom.*;

public class SGBalloonExample {
   public static JSGPanel canvas() {
      JSGPanel canvas = new JSGPanel();
      canvas.setScene(shape(balloon(),Color.RED));
      return canvas;
   }

   private static SGBalloon balloon() {
      SGBalloon balloon = new SGBalloon();
      balloon.setX( 10 );
      balloon.setY( 10 );
      balloon.setWidth( 100 );
      balloon.setHeight( 100 );
      balloon.setArc( 20 );
      balloon.setTabWidth( 20 );
      balloon.setTabHeight( 10 );
      balloon.setTabLocation( SGBalloon.TAB_AT_BOTTOM );
      balloon.setTabDisplacement( 0.5f );
      balloon.setAnglePosition( SGBalloon.ANGLE_AT_END );
      return balloon;
   }

   private static SGGroup shape( SGShape shape, Color color ) {
      SGGroup group = new SGGroup();
      group.add( configureShapeForFill(shape,color) );
      group.add( configureShapeForStroke(shape) );
      return group;
   }

   private static SGShape configureShapeForFill( SGShape shape, Color color ) {
      SGShape s = new SGShape();
      s.setShape(shape.getShape());
      s.setFillPaint(color);
      s.setMode(SGShape.Mode.FILL);
      s.setAntialiasingHint(RenderingHints.VALUE_ANTIALIAS_ON);
      return s;
   }

   private static SGShape configureShapeForStroke( SGShape shape ) {
      SGShape s = new SGShape();
      s.setShape(shape.getShape());
      s.setDrawStroke(new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER));
      s.setDrawPaint(Color.black);
      s.setMode(SGShape.Mode.STROKE);
      s.setAntialiasingHint(RenderingHints.VALUE_ANTIALIAS_ON);
      return s;
   }

   public static JFrame buildUI() {
      JFrame frame = new JFrame("SGBalloon");
      frame.getContentPane().add(canvas());
      frame.setSize(new Dimension(130,160));
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      return frame;
   }

   public static void main( String[] args ) {
      SwingUtilities.invokeLater( new Runnable() {
         public void run() {
            buildUI().setVisible(true);
         }
      });
   }
}

Sign in to add a comment
Hosted by Google Code