Premesso che JFrame non ha nessun metodo setColor (né nessuna delle sue super-classi), per poter funzionare dovrebbe non solo esistere il metodo setColor, ma anche esistere nella forma setColor(int, int, int) (ovvero un override).
Quello che, invece, esiste è un costruttore della classe Color che accetta la terna (r, g, b) per costruire un oggetto della classe Color, che eventualmente puoi passare ad un metodo come setBackground().
Esempio (se proprio vogliamo farci del male):
codice:
// Tralascio tutta la gestione delle eccezioni
// Sia c un componente (esempio un JPanel) Swing provvisto di metodo setBackground()
Method m = c.getClass().getMethod("setBackground", new Class<?>[] {Color.class});
if (m != null) {
Constructor con = Color.class.getConstructor(int.class, int.class, int.class);
if (con != null) {
Color colore = (Color) con.newInstance(255, 0, 0);
m.invoke(c, colore);
}
}
PS: Attenzione che il costruttore di Color accetta tre valori primitivi interi, non tre oggetti Integer (l'auto-unboxing con la reflection non va tanto d'accordo)
Ciao.