Esta es una calculadora que hice un día que me aburría. La hice para entretenerme.
¿Qué tiene de entretenido hacer una calculadora?. Bueno, pues hacer una calculadora que no funcione como las calculadoras normales. Intenta usarla y verás lo que pasa.
Para los que les interese el código, simplemente hace falta una clase Hilo que es la que se encarga de mover un componente por la pantalla
class ElHilo extends Thread {
private Window w;
private double t=0;
private double A=Math.random()*300;
private double B=Math.random()*300;
private double a=Math.random()*8-4;
private double b=Math.random()*8-4;
private Point pOriginal;
public ElHilo(Window w) {
this.w = w;
pOriginal = w.getLocation();
}
public void run() {
while (true) {
double dx = A*Math.sin(a*t);
double dy = B*Math.cos(b*t-Math.PI/2);
w.setLocation( pOriginal.x+(int)dx, pOriginal.y+(int)dy);
t=t+0.01;
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
y un método recursivo en algún sitio capaz de ir rebuscando en el árbol de componentes para hacer "flotar" los que nos interesen
public void meteEnWindows(Component componente) {
if ((componente instanceof JButton) || (componente instanceof JTextField))
{
Point p;
try {
p = componente.getLocationOnScreen();
} catch(Exception e) {
return;
}
Window w = new Window(SwingUtilities.getWindowAncestor(componente));
w.setLocation(p);
w.add(componente);
w.pack();
w.setVisible(true);
ElHilo hilo = new ElHilo(w);
hilo.start();
}
if (componente instanceof Container) {
Component[] hijos = ((Container)componente).getComponents();
int numeroComponentes = ((Container)componente).getComponentCount();
for (int i=0;i<numeroComponentes;i++)
meteEnWindows(hijos[i]);
}
}
Pues nada, ahí está para el que guste de estas chorradas.
September 21st, 2007 at 3:24 am
[…] Este blog que estoy leyendo ultimamente escribio un post muy interesante, Aqui os pongo un extracto frikis!!: Esta es una calculadora que hice un día que me aburría. La hice para entretenerme. ¿Qué tiene de entretenido hacer una calculadora?. Bueno, pues hacer una calculadora que no funcione como las calculadoras normales. Intenta usarla y verás lo que pasa. Para los que les interese el código, simplemente hace falta una clase Hilo Posted in Diario de Programación ( 19 links from 10 sites) […]
September 23rd, 2007 at 2:49 pm
Orales, se ve chido!!!