private static final Color not working...

Posted on 2004-10-05
Last Modified: 2010-03-31
I have created a class called Board, which is to represent a the board for a board game. I want to set the color of the board as a constant, so that any time i want to change the board color, i can do so in one location. I also want all instances of the board class to use this same color.

I assumed that the best way to do it would be similarly to how it is defined in, and did so in the following way:

private static final Color BOARD_COLOR = new Color(255, 255, 175);

However, when running the program, it draw using a pale offwhite color, regardless of what numbers I use in new Color(). Even when I set it equal to Color.cyan, it still draws the same pale offwhite.

What am I doing wrong? My other uses of private static final seemed to work without there something special about colors?
Question by:iggames
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
  • 2
LVL 92

Expert Comment

ID: 12233061
how do you use the BOARD_COLOR?

Author Comment

ID: 12233253
I call


in the function

private static final BufferedImage createBoardImage()

createBoardImage makes a BufferedImage of proper size, sets color to BOARD_COLOR, and draws the board using that color
LVL 92

Assisted Solution

objects earned 40 total points
ID: 12233288
should be fine, can you post some example code to demonstrate the problem.
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Accepted Solution

tomboshell earned 60 total points
ID: 12235940
in the function createBoardImage you always set the color to BOARD_COLOR, both are final static which should be ok.  As I see it you aren't allowing for the color to change.  I assume that you are always recreating the entire board by recalling this method which only sets the one color.  Try introducing a new variable, call it something like currentColor and create some getter/setters for it.  Have this currentColor initally set to the  BOARD_COLOR and then whenever you need a new color call the setter method for the currentColor and recreate/repaint it.  


private static final Color BOARD_COLOR = new Color(255, 255, 175);

private static Color currentColor = BOARD_COLOR;

public static Color getCurrentColor(){
  return currentColor;
public static void setCurrentColor(Color c){
  currentColor = c;
private static final BufferedImage createBoardImage(){
   // whatever else

  // the return image

Author Comment

ID: 12283923
it didn't fix the problem, but i don't feel like spending the time trying to narrow down what the problem is. i only use the color in one line of code, so i just put it in manually there. thank you for your responses, though.

Expert Comment

ID: 12284253
Sorry that it wasn't solved that quick.

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question