Hola soy nuevo en esto de java y agradeceria que me echen una mano con el siguiente problema.
La situacion es que hice un pequeño programa con Jframe y paneles donde en la parte superior estan los botones de "circulo", "linea", "Rectangulo" (solo funciona el de circulo) la cuestion es que al apretar el boton ya con funcionamiento (circulo) , no me dibuja en la parte inferior el circulo de inmediato, sino que tengo que estar redimencionando la ventana o agrandandola para que el circulo aparesca. No se donde cometi el error de programacion para que esto me pase tal vez en el ActionPerformed , de todas formas les envio el codigo de los 4 archivos para que los vean y si encuentran mi trafalada indiquenlo con letras grandes para que no se me olvide.
Todos los archivos deben estar en la misma carpeta, haber si lo compilan para que experimenten el error que les indico par aque puedan corregirme y asi poder yo seguir aprendiendo este interesante lenguaje
******************* EjerciciosPropuestosT5.java*****************
public class EjerciciosPropuestost5 {
public static void main(String[] args) {
new Ejercicio1();
}
}
************************************************** **********
**********************Ejercicio1.java************* **************
import java.awt.*;
import javax.swing.*;
public class Ejercicio1 extends JFrame
{
public Ejercicio1()
{
super("Ejercicios Tema 5");
this.setBounds(100, 100, 500, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
this.setVisible(true);
BorderLayout border = new BorderLayout();
Panel pnlEj1 = new Panel(new GridLayout(1,3));
JButton btnCir = new JButton("Circulo");
btnCir.addActionListener(new ManejoBoton(this));
JButton btnLin = new JButton("Linea");
JButton btnRec = new JButton("Rectangulo");
pnlEj1.add(btnCir);
pnlEj1.add(btnLin);
pnlEj1.add(btnRec);
this.getContentPane().add(pnlEj1,BorderLayout.NORT H);
this.setVisible(true);
}
}
************************************************** *************
**************************ManejoBoton.java******** ***************
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class ManejoBoton implements ActionListener{
Ejercicio1 ej1;
Circulo cir =new Circulo();
public ManejoBoton(Ejercicio1 ej1)
{
this.ej1=ej1;
}
public void actionPerformed(ActionEvent e) {
ej1.getContentPane().add(cir,BorderLayout.CENTER);
}
}
************************************************** *************
***************************Circulo.java*********** ****************
import java.awt.Graphics;
import javax.swing.JPanel;
public class Circulo extends JPanel{
@Override
public void paint(Graphics g)
{
int x=(int)Math.floor((Math.random()*1)*(Math.random() *300));
int y=(int)Math.floor((Math.random()*1)*(Math.random() *300));
int ancho=x+(int)Math.floor(Math.random()*(Math.random ()*100));
int alto=y+(int)Math.floor(Math.random()*(Math.random( )*100));
g.drawOval(x, y, ancho, alto);
}
}
************************************************** ***********