Hola todos:
Estoy aprendiendo Java con el libro de “Como programar en Java” de deitel y deitel; pero este código presenta un error o no soy capaz de detectarlo, porque se trata de un ejemplo del libro el cual esta el código no es un ejercicio propuesto.
Para quienes tengan el libre es el Capitulo 11 Pág. 579 y es el de la figura 11.13
Aquí posteo el código:
Se trata de el manejo de frame o marcos.
import java.awt.*;
import java.applet.*;
public class MiMarco2 extends Applet
{
private DemoFrame f;
private Button muestraFrame;
public void init()
{
String s = "Oprima para ver el marco";
muestraFrame = new Button(s);
add(muestraFrame);
}
public boolean action(Event e, Object o)
{
if(e.target == muestraFrame)
{
String s = "¡Este marco hace algo!";
if(f != null)
{
f.hide(); //Ocultar el marco
f.dispose(); //Liberar recursos
}
f = new DemoFrame(s); //Ejemplarizar un marco
f.resize(300, 200); //Redimensionar el marco
//No permitir que se redimensione el marco
f.setResizable(false);
f.show(); //Exhibir marco
}
return true;
}
}
class DemoFrame extends Frame
{
private Button a, b, c, d;
public DemoFrame(String s)
{
//Llamar al constructor de la clase base
super(s);
a = new Button("amarillo");
b = new Button("rojo");
c = new Button("azul");
d = new Button("verde");
//El diseño por omisión es Borderlayout
add("Nort", a);
add("East", b);
add("South", c);
add("West", d);
}
public boolean handleEvent(Event e)
{
if(e.id == Event.WINDOW_DESTROY)
{
hide(); //Ocultar Marco
dispose(); //Liberar Recursos
return true;
}
return super.handleEvent(e);
}
public boolean action(Event e, Object o)
{
if(e.target == a)
{
setBackground(Color.yellow);
}
else if(e.target == b)
{
setBackground(Color.red);
}
else if(e.target == c)
{
setBackground(Color.blue);
}
else if(e.target == d)
{
setBackground(Color.green);
}
repaint(); //Actualizar el color
return true;
}
}