[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