Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 309


Previous 1060 Stories (530 Pages, 2 Per Page) Next

The Java Lesson 29: The Color and Font classes

Go to all tips in Java Lessons by Jon Huhtala
All Java Lessons contents page | Java Lesson 1 | Java Lesson 2 | Java Lesson 3 | Java Lesson 4 | Java Lesson 5 | Java Lesson 6 | Java Lesson 7 | Java Lesson 8 | Java Lesson 9 | Java Lesson 10 | Java Lesson 11 | Java Lesson 12 | Java Lesson 13 | Java Lesson 14 | Java Lesson 15 | Java Lesson 16 | Java Lesson 17 | Java Lesson 18 | Java Lesson 19 | Java Lesson 20 | Java Lesson 21 | Java Lesson 22 | Java Lesson 23 | Java Lesson 24 | Java Lesson 25 | Java Lesson 26 | Java Lesson 27 | Java Lesson 28 | Java Lesson 29 | Java Lesson 30 | Java Lesson 31 | Java Lesson 32 | Java Lesson 33 | Java Lesson 34 | Java Lesson 35 | Java Lesson 36 | Java Lesson 37 | Java Lesson 38 | Java Lesson 39 | Java Lesson 40 | Java Lesson 41 | Java Lesson 42 | Java Lesson 43 | Java Lesson 44 | Java Lesson 45 | Java Lesson 46

Java Lesson 29 by Jon Huhtala: The Color and Font classes

The Color class

  • Is part of the java.awt package

  • Is an extension of the Object class

Object

Color
  • Encapsulates a particular color by mixing specified levels of red, green, and blue (RGB) light

  • Is used extensively in graphical programming. The Color class makes it easy to specify the background and foreground (text) colors of components and set the pen color to be used in drawing lines and shapes.

  • Contains predefined Color objects for 13 commonly used colors:

black
blue
cyan
darkGray
gray
green
lightGray
magenta
orange
pink
red
white
yellow

To reference one of these predefined objects you need only code an expression such as Color.yellow.

NOTE: Beginning with Java 2 version 1.4, the Color class has been expanded to contain capitalized versions of the above object references (Color.YELLOW, Color.PINK, etc.). Avoid the capitalized references if using older versions of Java.

  • Provides several overloaded constructors for creating a custom color in a variety of ways. For example, to create a custom Color object that is brown one could code

Color brown = new Color(255, 128, 0);

where the parameters specify the level of red, green, and blue as integers in the range of 0 to 255.

  • Has several useful methods. Commonly used methods are:

Method

Usage

getRed()

Returns the level of red in the range of 0 - 255

getBlue()

Returns the level of blue in the range of 0 - 255

getGreen()

Returns the level of green in the range of 0 - 255

Example:


import java.awt.*;
import java.awt.event.*;

public class App extends Frame implements WindowListener, ActionListener {

Button blot, more, less;
int greenLevel = 160;

public static void main(String[] args) {
App myWindow = new App("Green Blot");
myWindow.setSize(200,150);
myWindow.setVisible(true);
}

public App(String title) {
super(title);
setLayout(new BorderLayout());
addWindowListener(this);

blot = new Button("Green level is " + greenLevel);
blot.setForeground(Color.white);
blot.setBackground(new Color(0,greenLevel,0));
add(blot, BorderLayout.NORTH);

Panel moreOrLess = new Panel();
moreOrLess.setLayout(new GridLayout(1,2));
more = new Button("More Green");
more.setBackground(Color.black);
more.setForeground(Color.green);
more.addActionListener(this);
moreOrLess.add(more);
less = new Button("Less Green");
less.setBackground(Color.black);
less.setForeground(new Color(0,160,0));
less.addActionListener(this);
moreOrLess.add(less);
add(moreOrLess);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(more)) {
if (greenLevel < 255) {
greenLevel += 5;
}
}
else {
if (greenLevel > 0) {
greenLevel -= 5;
}
}
blot.setBackground(new Color(0,greenLevel,0));
blot.setLabel("Green level is " + blot.getBackground().getGreen());
}

public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}

public void windowOpened(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
}

Notes:

  1. The sample declares three Button object references. blot is used to display the current level of green, more is used to increase the level of green, and less is used to decrease the level of green. The integer variable greenLevel will maintain the current level of green (from 0 to 255) and is initialized to 160.

  2. In the constructor, blot is instantiated with a white text color and the initial level of green for its background color. It is placed in the NORTH of the frame's BorderLayout. A Panel object is then constructed having a GridLayout to hold the more and less buttons. The buttons are instantiated (with foreground color, background color, and registered action listener) and added to the panel which is then added to the application frame.

  3. The actionPerformed() method determines which button (more or less) was clicked and adjusts the background color of blot either up or down accordingly. The label of blot is also changed to display the current level of green in its background color.

The Font class

  • Is part of the java.awt package

  • Is an extension of the Object class

Object

Font
  • Encapsulates a font for displaying text in a particular style and size

  • Provides a constructor for creating a customized font. For example, to create a custom Font object for displaying text in 24 point italicized Serif one could code

Font myFont = new Font("Serif", Font.ITALIC, 24);

where the parameters specify the font name, font style, and point size.

  • Can use any font available on the system. For compatibility, however, only "Serif", "SansSerif", and "Monospaced" are recommended. These are roughly equivalent to the "Times Roman", "Arial", and "Courier" fonts of Windows.

  • Has public fields for specifying the font style. These can be referenced by coding

Font.BOLD
Font.ITALIC
Font.PLAIN

To combine styles, code an expression such as Font.BOLD + Font.ITALIC

  • Provides for characters of any size specified as an integer point size

  • Has many methods but few are needed to satisfy standard programming requirements. For more detail, consult the help facility of your IDE or the Java API documentation.

Example:

import java.awt.*;
import java.awt.event.*;

public class App extends Frame implements WindowListener {

Button b;

public static void main(String[] args) {
App myWindow = new App("Font sample");
myWindow.setSize(250,100);
myWindow.setVisible(true);
}

public App(String title) {
super(title);
addWindowListener(this);
b = new Button("Click me");
b.setBackground(Color.red);
b.setForeground(Color.white);
b.setFont(new Font("Monospaced", Font.PLAIN, 12));
add(b);
b.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
b.setFont(new Font("SansSerif", Font.BOLD + Font.ITALIC, 4Cool);
b.setLabel("Ouch!!");
}
}
);
}

public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}

public void windowOpened(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
}

Notes:

  1. The sample declares a single Button object reference (b).

  2. In the constructor, b is instantiated with a red background color, a white text color, and a "Monospaced", plain, 10 point font. It is added to the CENTER of the frame's BorderLayout (both by default) and its ActionListener is both registered and defined using an anonymous inner interface. When using this technique, the interface isn't implemented in the class header. When the user clicks the button, its font is changed to 48 point, bold, italicized, "SansSerif" and its label is modified. A slight delay may be noticed as these operations are time consuming in Java.

Lab exercise for Ferris students

E-mail your answers to this assignment no later than the due date listed in the class schedule.

Review questions

  1. Assuming that all unseen code is correct and that the container has a foreground color of blue, what will result from attempting to compile and execute the following code with a Java 2 version 1.2 compiler? The line numbers are for reference purposes only.

1
2
3
Button blue = new Button("Am I blue?");
blue.setBackground(Color.BLUE);
add(blue);
  1. Compilation will fail at line 2

  2. Compilation will fail at line 3

  3. Compilation will succeed but a runtime error will occur

  4. Compilation will succeed. A button with the text "Am I blue?" and having white letters on a blue background will be added to the container.

  5. Compilation will succeed but the button's text will not be visible.

  1. If somePanel is a container, code a single statement to set its text color to a custom shade having maximum levels of red and blue, but no green.

  2. Which of the following will set a component's text to display in yellow, 18 point, bold, serif if using Java 2 version 1.2?

  1. setForeground(Color.YELLOW));
    setFont(new Font("Serif", Font.BOLD, 1Cool);

  1. setForeground(Color.YELLOW));
    setFont(new Font("Serif", Font.bold, 1Cool);

  2. setForeground(Color.yellow));
    setFont(new Font("Serif", Font.BOLD, 1Cool);

  3. setForeground(Color.yellow));
    setFont(new Font("Serif", Font.bold, 1Cool);

  4. setForeground(Color.yellow));
    setFont(new Font("Serif", BOLD, 1Cool);

  1. What background color will result from the following?

setBackground(Color.gray.blue);

  1. The statement will not compile

  2. Compilation succeeds but a runtime error will occur

  3. A mix of gray and blue

  4. gray

  5. blue


15804 bytes more | comments? | Printer Friendly Page  Send to a Friend | Score: 4
Posted by jalex on Monday, February 21, 2005 (00:00:00) (10342 reads)

Portlets with FacesClient Components

Go to all tips in General Java

While Web-based technology provides a cost-effective means to deploy, administer, and access business applications, developers must design such applications to effectively meet today's demanding business needs. A big problem for typical Web applications centers on dynamic Web page generation, coupled with the inability to avoid content regeneration when user interactions force a page refresh.

As a solution, the IBM?® FacesClient Components feature client-side processing coupled with a client-side data model to reduce server and network loads and user wait times. The result: richly interactive Web applications utilizing JavaScript for client-side processing and data structuring without browser or client upgrades.

In this article, we introduce the technology underlying FacesClient Components and describe how to build FacesClient Components-enabled portlet applications using the beta 1 version of the JSL (JavaScript Library) Emitter layer of the programming model. To help align the development group with the customer, we employ a scenario-based design approach to drive FacesClient Components technology development and features. To demonstrate the advantages of FacesClient Components-enabled applications compared to typical Web applications, we present the IBM?® Software Group (SWG) System House Customer Loyalty (CL) scenario.

In Parts 2 and 3 of this series, we will address the challenges of using FacesClient Components in a portal environment and methods for updating the client-side data model without refreshing the portal page. Note: During the prototype's development and implementation phase, the programming model's tooling and JavaServer Faces (JSF) layers were not mature enough to support development of the prototype. In Part 4, we will describe how to use the JSF programming layer and tooling to develop the CL prototype.

Web applications developed using the thin client computing model exhibit performance gaps and user interface limitations. As an alternative, the IBM?® FacesClient Components (formerly called the Odyssey Browser Framework) provides a more effective model for developing Web applications. FacesClient Components work inside a portlet programming environment to deliver exceptional value to users in the form of richer user interfaces and improved application performance. In this article, three software engineers explore the fundamentals of FacesClient Components and its uses for building portlet applications.

Who should read this: Developers of Web portal-based applications
Software versions: Beta 1 of the FacesClient components the non-JSF API for the components, as shipped in WebSphere Studio Application Developer 5.1.2
Goals of this paper: Describe how to develop a new breed of rich, dynamic, interactive and responsive Web portal applications

Read the article here



5 comments | Printer Friendly Page  Send to a Friend | Score: 0
Posted by Anonymous on Sunday, February 20, 2005 (00:00:00) (2796 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310|
309
| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy