advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement


Tutorials : Java by Example : Section 5 :
Section Five Contents
Introducing Classes and Objects
Using the Vector Class

Objects and Classes

Introducing Classes and Objects

This next applet uses a separate "Bubble" class (which is also a separate *.class file after compilation). This class is a kind of "black box" for the rest of the program. It has it's own variables and methods. To use a class, the program must create an instance, or "object" of that class: Bubble myBubble; and myBubble = new Bubble(x,y);. The first declared a variable name for our object, the second created the object itself. The arguments (x,y) are the arguments of the constructor. The constructor is a method that is called from the creating class in the moment an object is created. You can pass arguments from the creating class to the object here, or make any initializations. Via that object (you can create as much as you need), the program can call methods of that class. Use the "." operator between object name and method name, like this: myBubble.paint(gBuffer). You can also access variables of the objects directly: myBubble.x - but that is not recommended , to avoid accidentally changing data in your object. You would also have to declare them public to allow access from outside the class. Try to use only methods to access variables of an object.

//Sourcecode

import java.awt.*;
import java.applet.*;

//bubbles applet with a separate bubble class!

class Bubble
{
   //instance variables
   int x, y;
   Graphics g;

   //constructor
   public Bubble(int x, int y)
   {
        this.x=x;
        this.y=y;
   }

   public void drawRandomBubble(int x, int y)
   {
        int red=(int)(Math.random()*255);
        int green=(int)(Math.random()*255);
        int blue=(int)(Math.random()*255);

        Color randomColor=new Color(red, green, blue);
        g.setColor(randomColor);

        //generate a random number between 10 and 100
        int diameter=(int)(Math.random()*90)+10;

        //make mouse cursor the center of our random bubble
        g.fillOval(x-diameter/2,y-diameter/2,diameter,diameter);
    }


    public void paint(Graphics gr)
    {
        g=gr;
        drawRandomBubble(x, y);
    }
}

public class Project23 extends Applet
{
   Image Buffer;
   Graphics gBuffer;
   Bubble myBubble;

   public void init()
   {
      Buffer=createImage(size().width,size().height);
      gBuffer=Buffer.getGraphics();
   }

   public boolean mouseDown(Event evt,int x,int y)
   {
      myBubble = new Bubble(x,y);

      myBubble.paint(gBuffer);

      repaint();

      return true;
   }

   public void update(Graphics g)
   {
      paint(g);
   }

   public void paint(Graphics g)
   {
      gBuffer.setColor(Color.black);
      gBuffer.drawString("Click the applet to paint classy bubbles!", 30,20);
      g.drawImage (Buffer,0,0, this);
   }
}

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs