How to change text color of a JButton

Kurt E picture Kurt E · Mar 13, 2013 · Viewed 54.9k times · Source

I am writing a simple minesweeper game and it works now, but I am working on the pretty details like making each number a different color.

I keep running into errors when I try to set the text color on the JButton. I can change the text easily enough and the background, but not the text color specifically.

The part that keeps getting all mucked up is:

total = Integer.toString(count);
jb.setText(total);              
if(count == 1)
    jb.setTextColor(Color.blue);
if(count == 2)
    jb.setTextColor(Color.green);
if(count == 3)
    jb.setTextColor(Color.red);

For some reason my error is:

MS.java:109: error: cannot find symbol
                    jb.setTextColor(Color.blue);
                      ^
  symbol:   method setTextColor(Color)
  location: variable jb of type JButton
MS.java:112: error: cannot find symbol
                    jb.setTextColor(Color.green);
                      ^
  symbol:   method setTextColor(Color)
  location: variable jb of type JButton
MS.java:114: error: cannot find symbol
                    jb.setTextColor(Color.red);
                      ^
  symbol:   method setTextColor(Color)
  location: variable jb of type JButton
3 errors
Process javac exited with code 1

This occurs whenever I try to compile, but when I change it to say setBackgroundColor instead of setTextColor it works just fine.

Answer

Reimeus picture Reimeus · Mar 13, 2013

setTextColor is undefined for JButton. To set the JButton text color, you can use setForeground.

button.setForeground(Color.RED);