es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    ¡Hola! Es genial que estés progresando como principiante en Java y AWT. Aquí están algunas sugerencias para hacer tu código más limpio:

    1. Usa nombres de variables mejores: Por ejemplo, en lugar de gui, podrías renombrarla como graficos. Usar nombres de variables descriptivos hará que tu código sea más legible y fácil de entender.
    2. Separa el código que dibuja el objeto del código que cambia su color: En lugar de tener cambiarColor() llamado en dibujarComponente(), crea un botón separado para cambiar el color.

    3. Usa un bucle en lugar de cambiar manualmente el color para cada elemento: En lugar de recorrer la lista de colores y establecer el color de la GUI para cada elemento, selecciona un color al azar y establece ese color para todos los elementos.

    Aquí está una versión actualizada de tu código que incorpora estas sugerencias:

    “`java
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Random;

    public class TestGraphic extends Figure {

    TestGraphic() {
        setSize(600, 600);
        addCloseButton();
    }
    
    public static void main(String[] args) {
        TestGraphic test = new TestGraphic();
        test.setVisible(true);
    }
    
    public void paint(Graphics graphics) {
        drawComponent(graphics);
    }
    
    public void drawComponent(Graphics graphics) {
        graphics.drawOval(108, 110, 200, 200);
        graphics.drawOval(160, 150, 20, 20);
        graphics.drawOval(240, 150, 20, 20);
        graphics.drawRect(160, 220, 100, 40);
    
        Button changeColorButton = new Button("Cambiar color");
        changeColorButton.setBounds(30, 100, 80, 30);
        add(changeColorButton);
    
        changeColorButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                changeColor(graphics);
            }
        });
    }
    
    @Override
    void draw(Graphics graphics) {
    
    }
    
    @Override
    public boolean contains(int x, int y) {
        return false;
    }
    
    private void addCloseButton() {
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent windowEvent) {
                System.exit(0);
            }
        });
    }
    
    private void changeColor(Graphics graphics) {
        List<color> colorList = Arrays.asList(
                Color.BLACK, Color.BLUE, Color.CYAN,
                Color.RED, Color.GREEN, Color.MAGENTA,
                Color.ORANGE, Color.YELLOW
        );
    
        Random random = new Random();
        int index = random.nextInt(colorList.size());
        graphics.setColor(colorList.get(index));
        repaint();
    }
    

    }

    ¡Espero que encuentres estas sugerencias útiles! Sigue aprendiendo y programando.

Comments are closed.