Botão RGB

Olá,

Preciso construir um applet que solicite três números para as configurações RGB e, em seguida, mostre a cor como pano de fundo.
Fiz esse código mas na hora em que peço para configurar está dando erro. Alguém saberia onde está o erro?

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Cores extends Applet implements ActionListener {
	
      Label lr, lg, lb, pr;
      TextField tr, tg, tb;
      Button b1;
      Graphics gr;
      int r,g,b; //r = red g = green b = blue //
      Cores c;
      public void init()
      {
    	  lr = new Label("Vermelho");
    	  add(lr);
    	  tr = new TextField(" ");
    	  add(tr);
    	  lg = new Label("Verde");
    	  add(lg);
    	  tg = new TextField(" ");
    	  add(tg);
    	  lb = new Label ("Azul");
    	  add(lb);
    	  tb = new TextField(" ");
    	  add(tb);
    	  b1 = new Button("Configure a cor");
    	  add(b1);
    	  pr = new Label("  ");
    	  		add(pr);
    	  b1.addActionListener(this);
    	  
    	}
      public void paint(Graphics gr) {
    	  gr.setColor(c);
    	  gr.fillRect(200, 200 , 200, 200);
      }
      
      public void actionPerformed(ActionEvent e)  {
    	  r = Integer.parseInt(tr.getText());
    	  g = Integer.parseInt(tg.getText());
    	  b = Integer.parseInt(tb.getText());
    	  if((r > 255) || (g > 255) || (b > 255)) {
    		  pr.setLocation(200,50);
    		  pr.setText("Entre com os valores de 0 a 255");
    	  }
    	  else   {
    		  pr.setText("  ");
    		  		c = new Cores(r,g,b);
    	  }
    	  repaint();	
 
    	  }
    	  
      }

Att, MYU23.

A variável c deveria ser do tipo Color (java.awt.Color) e não do tipo Cores. Cores é o seu Applet.

Outra coisa… prefira o uso de Swing ao da AWT. A classe de Applet no Swing é o JApplet.

Valeu pela dica. Acabei fazendo outro usando o setcolor background.
Este deu certo.

[quote=myu23]Valeu pela dica. Acabei fazendo outro usando o setcolor background.
Este deu certo.[/quote]

Poste o código certo. Aí fica registrado no fórum. :slight_smile:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class MudaCor extends JApplet implements ActionListener {

private JButton mudar;
private JTextField red, green, blue;
private JPanel labels = new JPanel();

public void init() {

    mudar = new JButton("Configure a sua cor");
    mudar.addActionListener(this);


    red = new JTextField("0",3);
    green = new JTextField("0",3);
    blue = new JTextField("0",3);

   
    getContentPane().setLayout(new FlowLayout());
    labels.setBackground(Color.white);
    getContentPane().add(labels);

    labels.setLayout(new FlowLayout());
    labels.add(red);
    labels.add(green);
    labels.add(blue);
    labels.add(mudar);
    setColor();
}

  public void stop() {
      if (mudar != null) {
          getContentPane().remove(mudar);
          mudar = null;
      }
}
  public static void main(String args[]) {
    
        MudaCor obj_cor = new MudaCor();
        obj_cor.setVisible(true);
  }
public void actionPerformed (ActionEvent e) {
    setColor();
}
public void setColor() {
    int r = 0, g = 0, b = 0;

    if (Integer.parseInt(red.getText()) > 255) red.setText("Falso");
    if (Integer.parseInt(green.getText()) > 255) green.setText("Falso");
    if (Integer.parseInt(blue.getText()) > 255) blue.setText("Falso");

    try   {
        r = Integer.parseInt(red.getText());
        g = Integer.parseInt(green.getText());
        b = Integer.parseInt(blue.getText());
    }
    catch (NumberFormatException nfe) {
        System.out.println("Entre com a cor desejada.");
}

    labels.setBackground(new Color(r,g,b));
    getContentPane().setBackground(new Color(r,g,b));
}
}