Source Code : Embedded AWT components, Custom selection interaction, Dynamic annotations

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Embedded AWT components, Custom selection interaction, Dynamic annotations

Embedded AWT components, Custom selection interaction, Dynamic annotations
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

import no.geosoft.cc.geometry.Geometry;
import no.geosoft.cc.graphics.*;



/**
 * G demo program. Demonstrates:
 *
 * <ul>
 * <li> An actual game application
 * <li> Embedded AWT components
 * <li> Custom selection interaction
 * <li> Dynamic annotations
 * <li> Geomtry generation
 * </ul>
 * 
 * @author <a href="mailto:jacob.dreyer@geosoft.no">Jacob Dreyer</a>
 */   
public class Demo19 extends JFrame
{
  public Demo19()
  {
    super ("G Graphics Library - Demo 19");    
    setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    
    // Create the graphic canvas
    GWindow window = new GWindow (new Color (170, 180, 190));
    getContentPane().add (window.getCanvas(), BorderLayout.CENTER);
    
    // Create scene with default viewport and world extent settings
    GScene scene = new GScene (window);

    // Create the graphics object and add to the scene
    Simon  simon = new Simon();
    GSimon gSimon = new GSimon (simon);
    scene.add (gSimon);

    pack();
    setSize (new Dimension (500, 500));
    setVisible (true);

    window.startInteraction (gSimon);
  }


  
  /**
   * Defines the geometry and presentation for the sample
   * graphic object.
   */   
  private class GSimon extends GObject
    implements ActionListener, GInteraction
  {
    private Simon       simon_;
    private GSegment    background_;
    private GSegment[]  sector_;
    private GSegment    title_;
    private GSegment    score_;
    private GSegment    gameOver_;
    
    
    GSimon (Simon simon)
    {
      simon_ = simon;
      
      background_ = new GSegment();
      GStyle backgroundStyle = new GStyle();
      backgroundStyle.setForegroundColor (new Color (0, 0, 0));
      backgroundStyle.setBackgroundColor (new Color (0, 0, 0));
      background_.setStyle (backgroundStyle);
      addSegment (background_);

      sector_ = new GSegment[4];
      
      sector_[0] = new GSegment();
      GStyle redStyle = new GStyle();
      redStyle.setForegroundColor (new Color (200, 0, 0));
      redStyle.setBackgroundColor (new Color (200, 0, 0));
      sector_[0].setStyle (redStyle);
      addSegment (sector_[0]);

      sector_[1] = new GSegment();
      GStyle greenStyle = new GStyle();
      greenStyle.setForegroundColor (new Color (0, 200, 0));
      greenStyle.setBackgroundColor (new Color (0, 200, 0));
      sector_[1].setStyle (greenStyle);
      addSegment (sector_[1]);

      sector_[2] = new GSegment();
      GStyle yellowStyle = new GStyle();
      yellowStyle.setForegroundColor (new Color (200, 200, 0));
      yellowStyle.setBackgroundColor (new Color (200, 200, 0));
      sector_[2].setStyle (yellowStyle);
      addSegment (sector_[2]);

      sector_[3] = new GSegment();
      GStyle blueStyle = new GStyle();
      blueStyle.setForegroundColor (new Color (0, 0, 200));
      blueStyle.setBackgroundColor (new Color (0, 0, 200));
      sector_[3].setStyle (blueStyle);
      addSegment (sector_[3]);

      title_ = new GSegment();
      GStyle titleStyle = new GStyle();
      titleStyle.setForegroundColor (new Color (255, 255, 255));
      titleStyle.setLineStyle (GStyle.LINESTYLE_INVISIBLE);            
      titleStyle.setFont (new Font ("Dialog", Font.BOLD, 36));
      title_.setStyle (titleStyle);
      title_.setText (new GText ("SIMON", GPosition.NORTH));
      JButton startButton = new JButton ("Start");
      startButton.addActionListener (this);
      title_.setComponent (new GComponent (startButton, GPosition.SOUTH));
      addSegment (title_);
      
      score_ = new GSegment();
      GStyle scoreStyle = new GStyle();
      scoreStyle.setForegroundColor (new Color (255, 255, 255));
      scoreStyle.setLineStyle (GStyle.LINESTYLE_INVISIBLE);      
      scoreStyle.setFont (new Font ("Dialog", Font.BOLD, 48));
      score_.setStyle (scoreStyle);
      score_.setText (new GText ("", GPosition.MIDDLE));
      addSegment (score_);

      gameOver_ = new GSegment();
      GStyle gameOverStyle = new GStyle();
      gameOverStyle.setForegroundColor (new Color (1.0f, 0.0f, 0.0f, 0.8f));
      gameOverStyle.setLineStyle (GStyle.LINESTYLE_INVISIBLE);      
      gameOverStyle.setFont (new Font ("Dialog", Font.BOLD, 18));
      gameOver_.setStyle (gameOverStyle);
      gameOver_.setText (new GText ("", GPosition.MIDDLE));
      addSegment (gameOver_);
    }


    public void actionPerformed (ActionEvent event)
    {
      gameOver_.getText().setText ("");
      score_.getText().setText ("");
      refresh();

      simon_.newGame();
      play (simon_.getSequence());
      getWindow().startInteraction (this);
    }


    public void event (GScene scene, int event, int x, int y)
    {
      if (event == GWindow.BUTTON1_UP) {
        GSegment segment = findSegment (x, y);
        int guess = -1;
        for (int i = 0; i < 4; i++)
          if (segment == sector_[i]) guess = i;

        if (guess == -1) return;

        boolean isCorrect = simon_.guess (guess);
        if (isCorrect) {
          highlight (guess, 500);
          if (simon_.isDone()) {
            GText scoreText = score_.getText();
            scoreText.setText (Integer.toString (simon_.getSequence().length - 1));
            refresh();

            // Pause
            try {Thread.currentThread().sleep (500);} catch (Exception e) {}

            play (simon_.getSequence());
          }
        }
        else {
          gameOver_.getText().setText ("GAME OVER");
          refresh();
          getWindow().stopInteraction();
        }
      }
    }

    

    private void highlight (int sectorNo, int nMillis)
    {
      GSegment sector = sector_[sectorNo];
      GStyle style = sector.getStyle();
      Color color = style.getBackgroundColor();
      Color highlight = color.brighter();
      style.setForegroundColor (highlight);
      style.setBackgroundColor (highlight);
      refresh();

      // Pause
      try {Thread.currentThread().sleep (500);} catch (Exception e) {}
      
      style.setForegroundColor (color);
      style.setBackgroundColor (color);
      refresh();
    }
    
    
    private void play (int[] code)
    {
      for (int i = 0; i < code.length; i++)
        highlight (code[i], 500);
    }
    
    
    private int[] createZone (int x0, int y0, int r0, int r1,
                              double angle0, double angle1)
    {
      int[] inner = Geometry.createSector (x0, y0, r0, angle0, angle1);      
      int[] outer = Geometry.createSector (x0, y0, r1, angle0, angle1);

      int n = outer.length + inner.length - 6;

      int[] zone = new int[n];
      int i = 0;
      for (int j = 0; j < inner.length - 4; j++)
        zone[i++] = inner[j];

      for (int j = outer.length - 6; j >= 0; j-=2) {
        zone[i++] = outer[j+0];
        zone[i++] = outer[j+1];
      }

      zone[i++] = zone[0];
      zone[i++] = zone[1];

      return zone;
    }
    
    
    public void draw()
    {
      background_.setGeometry (Geometry.createCircle (250, 250, 215));

      sector_[0].setGeometry (createZone (250, 250, 80, 190, 0.0, Math.PI / 2.0));
      sector_[0].translate (10, -10);

      sector_[1].setGeometry (createZone (250, 250, 80, 190, Math.PI / 2.0, Math.PI));
      sector_[1].translate (-10, -10);

      sector_[3].setGeometry (createZone (250, 250, 80, 190, Math.PI, 3.0 * Math.PI / 2.0));
      sector_[3].translate (-10, 10);

      sector_[2].setGeometry (createZone (250, 250, 80, 190, 3.0 * Math.PI / 2.0, Math.PI * 2.0));
      sector_[2].translate (10, 10);

      title_.setGeometry (250, 240);
      score_.setGeometry (250, 300);
      gameOver_.setGeometry (250, 300);
    }
  }


  private class Simon
  {
    private int[]    sequence_;
    private int      current_;
    private boolean  isDone_;

    
    int[] getSequence()
    {
      return sequence_;
    }
    
    
    void newGame()
    {
      sequence_ = new int[0];
      add();
      isDone_ = false;
    }


    private void add()
    {
      int[] newSequence = new int[sequence_.length + 1];
      System.arraycopy (sequence_, 0, newSequence, 0, sequence_.length);
      sequence_ = newSequence;
      sequence_[sequence_.length - 1] = (int) Math.round (Math.random() * 3);
      current_ = 0;
    }
    

    boolean guess (int guess)
    {
      boolean isCorrect = sequence_[current_++] == guess;
      isDone_ = current_ == sequence_.length;
      if (isCorrect && isDone_) add();
      return isCorrect;
    }


    boolean isDone()
    {
      return isDone_;
    }
  }
  


  public static void main (String[] args)
  {
    new Demo19();
  }
}

           
       

Thank with us