Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Spring Framework | Web Services | BioInformatics | Java Server Faces | Jboss 3.0 tutorial | Hibernate 3.0 | XML
 
 
Hot Web Programming Job

 

Tutorial Categories: Ajax | Articles | JSP | Bioinformatics | Database | Free Books | Hibernate | J2EE | J2ME | Java | JavaScript | JDBC | JMS | Linux | MS Technology | PHP | RMI | Web-Services | Servlets | Struts | UML

[an error occurred while processing this directive]

Java: Example - Drawing a Face v2

This simple application creates a graphic component to display a face. It subclasses JPanel and overrides the paintComponent method to do the drawing.

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
/** Face.java - Example app with graphics component.
  @author Fred Swartz 
  @version 1996 ... 2002-10-24
*/

import javax.swing.*;

////////////////////////////////////////////////////////////////// Face
public class Face {
    // =========================================================== main
    public static void main(String[] args) {
        JFrame window = new FaceWindow();
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setVisible(true);
    }//end main
}//end class Face
  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
/** FaceWindow.java - Window (JFrame) containing only one component.
  @author Fred Swartz 
  @version 1996 ... 2002-10-24
*/

import java.awt.*;
import javax.swing.*;

//////////////////////////////////////////////////////////// FaceWindow
class FaceWindow extends JFrame {
    // ==================================================== constructor
    FaceWindow() {
        Container content = this.getContentPane();  // get content pane
        content.setLayout(new BorderLayout());      // set its layout
        PacLady drawing = new PacLady();            // Create a PacLady
        content.add(drawing, BorderLayout.CENTER);  // center expands
        
        this.setTitle("Ms Paclady");
        this.pack();             // finalize window layout
    }//end constructor
}//endclass FaceWindow 
  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
/** PacLady.java - Graphical component extending JPanel.
  @author Fred Swartz 
  @version 1996 ... 2002-10-24
*/

import java.awt.*;
import javax.swing.*;

///////////////////////////////////////////////////////// class PacLady
    // This class extends JPanel and overrides paintComponent to
    // create a component for drawing - in this case a face.
public class PacLady extends JPanel {
    // =================================================== constructor
    PacLady() {
        this.setBackground(Color.lightGray);
        this.setPreferredSize(new Dimension(400, 400));  // size
    }//end constructor
    
    //===========================================//===== paintComponent
    public void paintComponent(Graphics g) {
        // This method is called to redraw window
        super.paintComponent(g);  // MUST be first line      
        //--- Draw the head with open mouth and 8 pixel border
        g.setColor(Color.pink);
        g.fillArc(8, 8, 384, 384, 30, 300);       
        //--- Draw the eye
        g.setColor(Color.magenta);
        g.fillOval(230, 72, 60, 60);
    }//end paintComponent
}//endclass PacLady

Possible exensions

  1. When the window is resized, the PacLady JPanel will also be resized. The drawing should be changed. Use
        int w = this.getWidth();
        int h = this.getHeight();
    near the beginning of paintComponent to find the width and height of the panel. Use these values so that the face expands and contracts more appropriately.
  2. Add a button that changes the expression when it is clicked. For example, it could change the face from happy to sad and vice versa.

Leave your comment:

Name:

Email:

URL:

Title:

Comments:


Enter Code:

Audio Version
Reload Image
 

Note: Emails will not be visible or used in any way, and are not required. Please keep comments relevant. Any content deemed inappropriate or offensive may be edited and/or deleted.

No HTML code is allowed. Line breaks will be converted automatically. URLs will be auto-linked. Please use BBCode to format your text.

Add This Tutorial To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 

Current Comments

0 comments so far (
post your own) View All Comments Latest 10 Comments:
  JDO Tutorials
  EAI Articles
  Struts Tutorials
  Java Tutorials
  Java Certification

Tell A Friend
Your Friend Name
Search Tutorials

 

 
 
Browse all Java Tutorials
Java JSP Struts Servlets Hibernate XML
Ajax JDBC EJB MySQL JavaScript JSF
Maven2 Tutorial JEE5 Tutorial Java Threading Tutorial Photoshop Tutorials Linux Technology
Technology Revolutions Eclipse Spring Tutorial Bioinformatics Tutorials Tools SQL
 

Home | JSP | EJB | JDBC | Java Servlets | WAP  | Free JSP Hosting  | Search Engine | News Archive | Jboss 3.0 tutorial | Free Linux CD's | Forum | Blogs

About Us | Advertising On RoseIndia.net  | Site Map

India News

Send your comments, Suggestions or Queries regarding this site at roseindia_net@yahoo.com.

Copyright © 2007. All rights reserved.