Problema con repaint...

saon
05 de Mayo del 2008
Hola a todos: necesito desarrollar un applet awt que incorpore un choice y pinte un rectangulo. El rectangulo debe cambiar su color al cambiar el item seleccionado del choice. No logro que el metodo repaint pinte nuevamente el rectangulo, solo lo hace en la parte que ocupa el choice, dejando lo demas en el color inicial.
El código es el siguiente
package actividad1;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.*;
public class SeleccionColores extends Applet implements ItemListener{
Choice selector; //Listado de colores
Label etiqueta;
String coloreslista[] = {"White","Black","Silver","Gray","Maroon","Red","Purple","Fuchsia","Green","Lime","Olive","Yellow","Navy","Blue","Teal","Aqua"};
int valorcolor[] = {0xFFFFFF,0x000000,0xC0C0C0,0x808080,0x800000,0xFF0000,0x800080,0xFF00FF,0x008000,0x00FF00,0x808000,0xFFFF00,0x000080,0x0000FF,0x008080,0x00FFFF};

public void init() {
etiqueta = new Label("Seleccione un color");
selector = new Choice();
for (int i = 0 ; i < coloreslista.length ; i++){
selector.addItem(coloreslista[i]);
}
add(etiqueta);
add(selector);
}
public void paint(Graphics g) {
Color color = new Color(valorcolor[selector.getSelectedIndex()]);
g.setColor(color);
g.fillRect(10, 10, getWidth()-20, getHeight()-20);
}
public void itemStateChanged(ItemEvent ie) {
repaint();
}
}

Agradezco desde ya la ayuda que puedan darme.
Oscar

saon
05 de Mayo del 2008
El problema era el oyente de eventos, lo implemente mal. Gracias a todos.