Solved

private static final Color not working...

Posted on 2004-10-05
6
298 Views
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 Color.java, 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 difficulty...is there something special about colors?
0
Comment
Question by:iggames
  • 2
  • 2
  • 2
6 Comments
 
LVL 92

Expert Comment

by:objects
ID: 12233061
how do you use the BOARD_COLOR?
0
 

Author Comment

by:iggames
ID: 12233253
I call

...
g.setColor(BOARD_COLOR);
...

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
0
 
LVL 92

Assisted Solution

by:objects
objects earned 40 total points
ID: 12233288
should be fine, can you post some example code to demonstrate the problem.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 7

Accepted Solution

by:
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.  

so...

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
   setColor(getCurrentColor());

  // the return image
}
0
 

Author Comment

by:iggames
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.
0
 
LVL 7

Expert Comment

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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
JAVA part two 5 57
object oriented programming comparison 5 54
Groovy problem when using SOAPUI : DispatchException occurred 7 27
MySQL  on Tomcat 8 27
By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

910 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

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now