Answer Posted / ranganathkini
Heavy components are GUI components which depend on a native
peer for displaying themselves. AWT uses heavy weight
components. This means that when u try to create a heavy
component, AWT realizes a native peer or creates a native
object and requests that native object to draw the component
using native APIs.
Heavy components are bad performes as they consume a lot of
system resources and have platform specific look and feel.
Also they are not fast as updates and notifications have to
pass thru several layers of method calls and callbacks to
get executed.
An alternative is the SWING GUI library which does not
depend on native objects for display, they use the Java 2D
API for drawing and display. These objects are much more
light weight and are very fast.
| Is This Answer Correct ? | 1 Yes | 0 No |
Post New Answer View All Answers
Question 5 [15] Consider the following classes, illustrating the Strategy design pattern: import java.awt.*; abstract class Text { protected TextApplet tA; protected Text(TextApplet tApplet) { tA = tApplet; } abstract public void draw(Graphics g); } class PlainText extends Text { protected PlainText(TextApplet tApplet) { super(tApplet); } public void draw(Graphics g) { g.setColor(tA.getColor()); g.setFont(new Font("Sans-serif", Font.PLAIN, 12)); g.drawString(tA.getText(), 20, 20); } } class CodeText extends Text { protected CodeText(TextApplet tApplet) { super(tApplet); } public void draw(Graphics g) { g.setColor(tA.getColor()); g.setFont(new Font("Monospaced", Font.PLAIN, 12)); g.drawString(tA.getText(), 20, 20); } } public class TextApplet extends java.applet.Applet { protected Text text; protected String textVal; protected Color color; public String getText() { return textVal; } public Color getColor() { return color; } public void init() { textVal = getParameter("text"); String textStyle = getParameter("style"); String textColor = getParameter("color"); if (textStyle == "code") text = new CodeText(this); else text = new PlainText(this); if (textColor == "red") color = Color.RED; else if (textColor == "blue") color = Color.BLUE; else color = Color.BLACK; } public void paint(Graphics g) { text.draw(g); 10 } } The Text class is more complicated than it should be (there is too much coupling between the Text and TextApplet classes). By getting rid of the reference to a TextApplet object in the Text class and setting the colour in the paint() method, one could turn the Text class into an interface and simplify the strategy classes considerably. 5.1 Rewrite the Text and PlainText classes to do what is described above. (6) 5.2 Explain the consequent changes that are necessary to the TextApplet class. (4) 5.3 Write an additional strategy class called FancyText (to go with your simplified strategy classes) to allow fancy text to be displayed for the value "fancy" provided for the style parameter. It should use the font Font ("Serif", Font.ITALIC, 12). (3) 5.4 Explain what changes are necessary to the TextApplet class for this. (2)
What is method reference?
how we can use debug in myeclipse 6.0 in order solve the problems that exist in our program when there are 900 to 1000 pages in a web application
What is byte value?
What is == mean?
Explain about instanceof operator in java?
What restrictions are placed on method overriding?
Why is String immutable?
What is the difference amongst jvm spec, jvm implementation, jvm runtime ?
Can we use this () and super () in a method?
What is meant by 'Class access modifiers'?
What is bigger kb or mb?
What are 5 boolean operators?
What is java object name?
How to make a write-only class in java?