Java Examples In A Nutshell (3rd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Java Examples In A Nutshell (3rd Edition) [Electronic resources] - نسخه متنی

O'Reilly Media, Inc

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










12.2 The Java 2D API


We now turn to the Java 2D API, which is available in Java 1.2 and
later. Features of this API include:

  • The
    Graphics2D class, which is a subclass of
    Graphics that defines additional graphics
    primitives and attributes.

  • The Shape
    interface, which Java 2D uses to define many graphics primitives and
    other operations. The java.awt.geom package
    contains a number of useful implementations of
    Shape.

  • The Stroke
    interface, which describes how lines are drawn (or stroked). The
    BasicStroke class implements this interface and
    supports the drawing of wide and dashed lines.

  • The Paint interface, which describes how shapes
    are filled. The GradientPaint implementation
    allows filling with color gradients, while
    TexturePaint supports tiling with images. Also, as
    of Java 1.2, the Color class implements the
    Paint interface, to allow shapes to be filled with
    a solid color.

  • The Composite interface, which defines how colors
    being drawn are combined with the colors already on the drawing
    surface. The AlphaComposite class allows colors to
    be combined based on the rules of alpha transparency. The
    Color class also has new constructors and methods
    that support translucent colors.

  • The RenderingHints
    class, which allows an application to request particular types of
    drawing, such as antialiased drawing. Antialiasing uses transparent
    colors and compositing to smooth the edges of text and other shapes,
    preventing "jaggies."

  • The
    java.awt.geom.AffineTransform class, which defines
    coordinate-system transformations and allows shapes (and entire
    coordinate systems) to be translated, scaled, rotated, and sheared.

    Because AffineTransform allows coordinate-system
    transformations, including scaling, the Java 2D API distinguishes
    between the coordinate system of the device (i.e., device space) and
    the (possibly) transformed user coordinate system (i.e., user space).
    Coordinates in user space can be specified using
    float and double values, and
    graphics drawn using Java 2D are resolution-independent.


In addition, in Java 1.2 and later, your applications are no longer
restricted to using a fixed set of logical fonts; you can now use any
font installed on the system. Finally, the Java 2D API also includes
easy-to-use image-processing classes.

The rest of this chapter is devoted to examples that demonstrate
these features of the Java 2D API. Most of the examples are
implementations of the GraphicsExample interface,
which is shown in Example 12-5.

Example 12-5. GraphicsExample.java

package je3.graphics;
import java.awt.*;
/**
* This interface defines the methods that must be implemented by an
* object that is to be displayed by the GraphicsExampleFrame object
*/
public interface GraphicsExample {
public String getName( ); // Return the example name
public int getWidth( ); // Return its width
public int getHeight( ); // Return its height
public void draw(Graphics2D g, Component c); // Draw the example
}

You can run these
examples using the GraphicsExampleFrame frame
program, which is shown at the end of the chapter. This program
creates a simple GUI, instantiates the classes listed on the command
line, and displays them in a window. For example, to display the
Shapes example we'll see in the
next section, you can use GraphicsExampleFrame as
follows:

% java je3.graphics.GraphicsExampleFrame Shapes

Many of the figures shown in this chapter are drawn at high
resolution; they are not typical screenshots of a running program.
GraphicsExampleFrame includes the printing
functionality that generated these figures. Even though
GraphicsExampleFrame doesn't do
any graphics drawing of its own and is therefore more of an example
of Java's printing capabilities, it is still listed
in Example 12-20 in this chapter.


/ 285