<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JOptionPane;

public class MostrarColores2 extends JFrame 
{
    // el constructor establece cadena de barra de título 
    // y dimensiones de la ventana
    
    public MostrarColores2()
    {
        setSize( 400, 600 );
        setVisible( true );
        
        String resultado = "";
        String milisegundos = "";
        
        while(true)
        {
            resultado = JOptionPane.showInputDialog("1. Mouse\n2. Ciclo\n3. Salir");
            if( resultado.equals("1") )
            {
                break;
            }else if( resultado.equals("2") ){
                milisegundos = JOptionPane.showInputDialog("Milisegundos");
                for( int i = 0; i &lt; 50; i++ )
                {
                    try{
                        Thread.sleep(Integer.parseInt(milisegundos));
                        repaint();
                    }catch( InterruptedException e)
                    {
                    }
                }
            }else if( resultado.equals("3") ){
                break;
            }
        }
        if( resultado.equals("1") )
        {
            getContentPane().add( new JLabel("Haga click sobre la ventana"),BorderLayout.SOUTH);
            
            addMouseMotionListener(
                new MouseMotionAdapter()
                {
                    public void mouseMoved( MouseEvent evento )
                    {
                        repaint();
                    }
                }
            );
        }
    }
    
    // dibujar rectángulos y objetos String en distintos colores
    
    public void paint( Graphics g )
    {
        int i, j, k;
        int x1 = 10, x2 = 600, y = 10;
        
        // llamar al método paint de la superclase
        
        super.paint( g );
        
        // establecer nuevo color de dibujo utilizando enteros
        
        g.setColor( new Color( 255, 0, 0 ) );
        g.fillRect( 25, 25, 100, 20 );
        g.drawString( "RGB actual: " + g.getColor(), 130, 40 );
        
        // establecer nuevo color de dibujo utilizando valores float
        
        g.setColor( new Color( 0.0f, 1.0f, 0.0f ) );
        g.fillRect( 25, 50, 100, 20 );
        g.drawString( "RGB actual: " + g.getColor(), 130, 65 );
        
        // establecer nuevo color de dibujo utilizando objetos Color estáticos
        
        g.setColor( Color.BLUE );
        g.fillRect( 25, 75, 100, 20 );
        g.drawString( "RGB actual: " + g.getColor(), 130, 90 );
        
        // mostrar valores RGB individuales
        
        Color color = Color.MAGENTA;
        g.setColor( color );
        g.fillRect( 25, 100, 100, 20 );
        g.drawString( "Valores RGB: " + color.getRed() + ", " +
         color.getGreen() + ", " + color.getBlue(), 130, 115 );
        
        // establecer nuevo color de dibujo utilizando enteros rectangulo rojo palabras en blanco.
        
        g.setColor( new Color( 255, 0, 0 ) );
        g.drawRect( 25, 125, 100, 20 );
        color = Color.WHITE;
        g.setColor( color );
        g.drawString( "RGB actual: " + g.getColor(), 130, 140 );
        
        // establecer nuevo color de dibujo utilizando enteros rectangulo amarillo 
        // palabras en amarillo puesto que el color quedo seteado como amarillo 
        
        g.setColor( Color.YELLOW );
        g.drawRect( 25, 150, 100, 20 );
        g.drawString( "RGB actual: " + g.getColor(), 130, 165 );
        
        // inicio de coordenadas para imprimir una gama de colores aleatorios.
        
        y  = 177;
        x1 = 25;
        x2 = 200;
        
        for( int a = 0; a &lt; 400; a++ ) // vamos a imprimir 400 lineas de colores equivale (400 pixeles en y)
        {
            if( (a % 10) == 0 ) // tamaño de las lineas quiero que para cada color tenga un tamaño de 5 lineas (5 pixeles en y) 
            {
                i = ( int )( Math.random() * 256 );
                j = ( int )( Math.random() * 256 );
                k = ( int )( Math.random() * 256 );
                g.setColor( new Color( i,j,k) );
            }
            g.drawLine( x1, y, x2, y ); // dibujo linea las coordenadas en x1 y x2 no cambian solo camban y1 y y2
            y += 1;                     // por cada linea dibujada incremento la coordenada en Y para ir bajando
        }
    }
    
    // ejecutar la aplicación
    public static void main( String args[] )
    {
        MostrarColores2 aplicacion = new MostrarColores2();
        aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    }
    
} // fin de la clase MostrarColores
</pre></body></html>