[Solución] Ejercicio: Aplicación de Control de Color de un Rectángulo

Clase vista: RectanguloColorVista

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

public class RectanguloColorVista extends JFrame {
    private RectanguloColorModelo modelo;
    private JSlider sliderRojo, sliderVerde, sliderAzul;
    private JTextField textoRojo, textoVerde, textoAzul;
    private JPanel rectanguloPanel;

    public RectanguloColorVista(RectanguloColorModelo modelo) {
        this.modelo = modelo;
        setTitle("Control de Color de Rectángulo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        JPanel controlesPanel = new JPanel(new GridLayout(3, 3));
        sliderRojo = new JSlider(0, 255, 0);
        sliderVerde = new JSlider(0, 255, 0);
        sliderAzul = new JSlider(0, 255, 0);
        textoRojo = new JTextField(3);
        textoVerde = new JTextField(3);
        textoAzul = new JTextField(3);

        controlesPanel.add(new JLabel("Rojo:"));
        controlesPanel.add(sliderRojo);
        controlesPanel.add(textoRojo);
        controlesPanel.add(new JLabel("Verde:"));
        controlesPanel.add(sliderVerde);
        controlesPanel.add(textoVerde);
        controlesPanel.add(new JLabel("Azul:"));
        controlesPanel.add(sliderAzul);
        controlesPanel.add(textoAzul);

        rectanguloPanel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.setColor(model.getColor());
                g.fillRect(10, 10, getWidth() - 20, getHeight() - 20);
            }
        };

        add(controlesPanel, BorderLayout.NORTH);
        add(rectanguloPanel, BorderLayout.CENTER);

        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }

    // Getters para sliders y text fields
    public JSlider getsliderRojo() { return sliderRojo; }
    public JSlider getsliderVerde() { return sliderVerde; }
    public JSlider getsliderAzul() { return sliderAzul; }
    public JTextField gettextoRojo() { return textoRojo; }
    public JTextField gettextoVerde() { return textoVerde; }
    public JTextField gettextoAzul() { return textoAzul; }
    public JPanel getrectanguloPanel() { return rectanguloPanel; }
}

Clase controlador: RectanguloColorControlador

Last updated