• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 308
  • Last Modified:

private static final Color not working...

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
iggames
Asked:
iggames
  • 2
  • 2
  • 2
2 Solutions
 
objectsCommented:
how do you use the BOARD_COLOR?
0
 
iggamesAuthor Commented:
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
 
objectsCommented:
should be fine, can you post some example code to demonstrate the problem.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
tomboshellCommented:
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
 
iggamesAuthor Commented:
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
 
tomboshellCommented:
Sorry that it wasn't solved that quick.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now