Java Abstract Window Toolkit (AWT)
Line2D class is used to present the line segment(x,y) in coordinate space. To specify the lines in double precision & float, use these lines. Line2D.DoubleLine2D.Float
Code below explains the drawing of a line. Java Code: // draw Line2D.Double
g2.draw(new Line2D.Double(x1, y1, x2, y2));
Different setline() methods are used by the Line class for explaining end points of line. End point of line will be specified by this given
// draw Line2D.Double
g2.draw(new Line2D.Double(x1, y1, x2, y2));
Point class creates location presenting x,y coordinate space. Point class consist of these sub classes. Point2D.FloatPoint2D.Double
Double precision and float are provided by these given classes to store the point’s coordinates, respectively. Java Code: //Create Point2D.Double
Point2D.Double point = new Point2D.Double(x, y);
For creation of coordinate along with 0,0, default constructor Point 2D.Double can be used.
Point2D.Double point = new Point2D.Double(x, y);
Several classes are provided in the Java 2D API that defines common geometric object like: PointsLinesCurvesRectangles
These geometry classes are part of the java.awt.geom package.
To retrieve methods from the path, the PathIterator interface defines and provides methods. For describing and inspecting geometric path objects, the Shape interface provides a set of methods. The GeneralPath class implements this interface and other geometry classes.
User interaction is supported with the graphics you want to display. You need to be able to determine when the user clicks on one of them. To determine whether a mouse click occurred over a particular Shape object, The Graphics2D class provides a hit method. You can also get the location of the mouse click. Call the contains method on the Shape class to determine whether the click was within the bounds of the Shape.
You can perform simple hit testing, if you are using primitive text
New geometric shapes are created by operations of Boolean at the existing ones. This is what is known as CAG i.e. constructive area geometry. In Java 2D API, shape interface is implemented by the area class. Following Boolean operations are supported by it. Constructing Complex Shapes from Geometry Primitives
An intersection at 2 overlapping circles is performed to create the leaves Java Code: leaf = new Ellipse2D.Double();
leaf = new Ellipse2D.Double();
The Graphics2D class rendering are used for specifications like: One wishes rendering objects as soon as possible.Rendering of the higher quality graphics is required.
Create a RenderingHint object. Pass to setRenderingHints of class Graphics 2D so that to alter or set rendering hint attribute, in context of Graphics2D.
Graphics 2D’s setRenderingHint method is called so that to set 1 hint and pass it on a value pair key, for that hint which you
As a clipping path, shape object is used so that to restrict that drawing areas which will render. Clipping path is considered to be the portion of Graphic2D context. Call the Graphics2D.setClip & pass ahpe so that to set clip’s attributes. Clipping path gets shrink by clip method calling & then passing to other shape. A clip intersects to current shape and specified shape.
To set clip method pass the ellipse & call clip so that for setting the clip path for intersection
One can do the modification of the graphic attributes so that for performing these graphic primitives in graphic 2D context. MoveScaleRotateShear
Transform attribute is defined by the instance of class AffineTransform. Parallel lines are found to be parallel no matter if the transformation has been done in affine transformation.
Graphics 2D class provides number of methods to change the transform attribute. Graphic2Dtransform can be changed by calling
The Java 2D API is considered to be a complex and powerful API which provides support to graphics. Just smaller feature sets are used by the Java 2D graphics, provided in class java.awt.graphics.
Graphic class is divided into 2 groups, as following. Draw & fill method: This makes you able to render the basic text shapes & images.Attributes setting method: Affects at filling appearance & drawing.
The setColor & setFont method
Graphics rendered to print are given as following, by making use of Java 2D Printing API. SwingComposite graphicsJava 2D graphicsImages
Document composition features are provided by the Java 2D printing API. Operations are facilitated to be performed by it. For example, ordering in which you need pages.
Pages are rendered by the Rendering to screen and rendering to printer are same things. Printing system controls render the pages. At screen, there
A rectangular 2D pixel arrays is an image, in Java 2D API. Color is presented by the pixel, at that position of image.Image’s vertical and horizontal extent is presented by the dimensions.
The class java.awt.image.BufferedImage is considered to be the most important image class to present images. For accessing image content directly, image’s content is stored by Java 2D API in memory.
BufferedImage object can be created directly by the applications.
Text characters shall be laid out by using proper glyphs, in a proper position. This is done before the text gets displayed. To manage the text layouts, these Java 2D mechanisms are used. Following is managed by the TextLayout:
1. Text layout
2. Hit detection
3. Highlighting To handle cases, the TextLayout gives these facilities.
1. Strings along with mixed fonts
2. Bidirectional text
3. Mixed languages
Glyphs are those shapes which are being used in a font to present string characters. A particular character or combination of characters is presented by the help of glyphs. E.g. á is presented by 2 glyphsThe ligature fi is presented by the help of one glyph
Collection of glyphs makes a font. Different faces are there for one single font, like regular, italic or bold. In font, all faces consist of same typographic features and are known to be the members
Text rendering capabilities are provided by the Java 2D API. These methods are included: Rendering StringsText layouts are performedEntire classes to set the font attributes
Graphic class’s drawstring method is used to draw the static string. To render directly, this would be the direct approach. SetFont method is used for specification.
Java 2D Layout class is used to do the implementation of text editing routines. Also, it might help you to have the
Following set of the standard shapes are provided by the Java 2D API. PointsEllipsesRectanglesLinesArcsCurves
To define geometric primitives, package java.awt.geom is considered to be the important one. By integration as well as the combination of straight geometric primitives, you can present arbitrary shapes.
Shape interface which consists of an outline & interior, presents the geometric shape. These set of methods are provided by this interface.
Uniform rendering model is provided by the Java 2D™ API, across number of devices. Rendering process is similar at the application level no matter the targeted rendering devices is printer or screen. Update/ paint method automatically gets invoked (with appropriate graphic context) if component is required to displayed
Class java.awt.Graphics2D is included in Java 2D API that provides graphic class an extension so that to give rendering feature and enhanced graphic access. Features included
Following capabilities are provided for the Java program by the Java 2D API via Awt extensions. 2D graphicsImage capabilitiesText capabilities
Following supports are provided by these comprehensive rendering packages: TextLine artImagesSophisticated drawing programFull featured framework to create a rich user-interfaceImage editor
These capabilities are being provided by the Java 2D API: Rendering model (uniform) to
By the help of The Java 2D API, following tasks are performed easily. Lines are drawn. Rectangles and many other geometric shapes are created.Shapes are filled with gradients or solid colors & textures.Text is drawn along with fine control at the font or rendering processImages are drawn by application of the filtering operations.Operations are applied like transformation or composition while doing the mentioned rendering operations.
For graphic contexts, abstract base call is the Graphic class. Graphic class permits:
• Applications to draw the components which have been realized at different devices.
• Applications to draw the screen images off.
Graphic objects encapsulate the information that has been stated required to do basic rendering. Following properties are included in the state information.
1. The Component object.
2. Translation origin to clip & render
The ComponentEvent is known as a low leveled event which indicates
1. Changed Size
2. Component Moved
3. Change Visibility
For sake of notifications, the component events are required. Resizing as well as component moves are handled automatically by AWT. Layout of GUI properly works without taking any special care for all events.
For other events, this is considered to be a base class:
Mouse actions that take place in component are indicated by the MouseEvent. In a particular component, mouse action takes place if there is mouse cursor at the unobscured component parts, when such action occurs.
In case of the lightweight components when mouse event are enabled at component, they are just dispatched to component.
Appropriate EventListener addition to the mouse event takes place to enable them. If they are not enable at component the correspondent mouse
Various event types are generated by AWT application. Application is made efficient & effective by the help of such events. In Java AWT, twelve event types are used. They are:
A container must contain a layout manager to perform its work. If a layout manager is not associated with a container, the container will place the components wherever specified using following methods.
A layout manager must be present in a container so that work could be performed. If container and layout manager are not associated with each other, the components will be placed by the container wherever specified by using these methods. setBounds()setSize()setLocation()
Components are arranged into grid of columns and rows by the GridBag Layout just the way grid layout manager did so. It also lets you to do the proper specification of the settings so that the components are positioned and sized in cells.
It is not necessary for all components to be of one uniformed size. E.g. component’s position at grid can be changed or can be spanned to various columns & rows.
Components present in longest row are used by the layout manager.
All components are arranged by the Grid layout manager. This arrangement is done in grid of columns and rows. One of the given options may be selected. Number of columns & rows shall be specified.Only rows are specified and no. of columns will be determined by the layout manager.Just columns are specified and no. of rows will be determined by layout manager.
Objects present in the layout manager grid have equal sizes which are based at the grid’s largest components.
Among number of component children, one container is displayed by the help of a card layout. This is similar to the flip cards present at your table. In a program, it can be used so that to show out various child component, to number of users.
E.g. Interface might have different kind of functionality as shown to user in comparison with that interface which is displayed to administrator. Appropriate interfaces are shown by card layout’s help.
Usage of the choice components
Flow layout is considered as the default layout manager for all applets or panel objects. All components are placed by the flow layout in rows, totally in accordance with panel’s width & size or total no. of components.
Resizing of the windows shall be done to understand fully the flow layout. It will show you that how from one row, components will float to other.
Flow layout is given as following. FlowLayout
Border Layout is for all objects of window’s default layout. There are 5 fixed areas of it, which are:
For container, this given figure illustrates the border layout that has been implemented.
• In north area, Border Layout Label is present.
• In the South area, Ok button is present.
• In the Center area, FRUIT trees list is present.
• Empty east area.
• Empty West area.
Pre-defined entire layout manager is present in java.awt. Interface java.awt.LayoutManager is implemented by the layout manager.
Every AWT i.e Abstract Windows Toolkit & swing container consists of a pre-defined default layout manager. container.setLayout can be used for setting or changing the layout manager.Interface java.awt.LayoutManager is implemented for customized layout manager.
Layout managers that are pre-defined are given here: java.awt.BorderLayoutjava.awt.FlowLayoutjava.awt.CardLayoutjava.awt.GridLayoutjava.awt.GridBagLayout
Layout manager is considered responsible for controlling the size or position of those components which are present in container object. E.g, different components (like buttons & labels) are present in window container. Components present in windows are Positioned and re-sized by layout manager.
One container may possess other container in it. Like, one container window may contain container panel. Given figure shows the purposes of layout manager.