15/02/2010, 08:50
|
| | | Fecha de Ingreso: abril-2008 Ubicación: León
Mensajes: 17
Antigüedad: 16 años, 9 meses Puntos: 0 | |
Problema con código Hola a tod@s!!
Estoy con un código de java que debería generar una serie de figuras geométricas y luego estas poder ser arrastradas por el usuario. En mi caso es una bañera que está formada por dos rectángulos y un circulo. El caso es que no me pinta nada y me da una excepcion de java.lang.nullpointer, segun esta excepción es que va algo que llega a vacio pero si en vez de poner el codigo ahi lo pongo en un método dentro de la clase principal no me llega nada a vacio y me lo muestra sin problemas. Me estoy volviendo loca intentando averiguar el por que; os dejo el código y si alguien me puede exar un cable se lo agradezco. Gracias.
Código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
public class DragTest {
public static void main(String[] args) {
MyWindow window = new MyWindow();
window.setVisible(true);
window.setPreferredSize(new Dimension(400,400));
window.pack();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class MyWindow extends JFrame{
public MyWindow(){
super("Drag test");
Container container = getContentPane();
container.setLayout(null);
// MyButton boton1 = new MyButton("Move me");
// container.add(boton1);
// boton1.setBounds(10, 10, 100, 30);
MyBañera bañera = new MyBañera("bañera");
container.add(bañera);
bañera.paint(getGraphics());
}
}
//class MyButton extends JButton implements MouseMotionListener{
// public MyButton(String text){
// super.setText(text);
// addMouseMotionListener(this);
// }
//public void mouseDragged(MouseEvent mme) {
// setLocation(
// this.getX() + mme.getX() - this.getWidth() / 2,
// this.getY() + mme.getY() - this.getHeight() / 2
// );
// }
// public void mouseMoved(MouseEvent mme) {}
//}
class MyBañera extends JApplet implements MouseMotionListener{
public MyBañera(String text){
super.setName(text);
addMouseMotionListener(this);
}
@Override
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D)g;
//Una bañera
//Una bañera
g2.setColor(Color.BLACK);
Rectangle2D r = new Rectangle2D.Float(50.0f, 50.0f,110.0f, 200.0f);
g2.fill(r);
g2.setColor(Color.BLUE);
RoundRectangle2D rr = new RoundRectangle2D.Float(
60.0f, 60.0f, 90.0f, 180.0f, 25.0f, 25.0f);
g2.fill(rr);
g2.setColor(Color.DARK_GRAY);
Ellipse2D e = new Ellipse2D.Float(100.0f, 80.0f, 10.0f, 10.0f);
g2.fill(e);
g2.draw(r);
g2.draw(rr);
g2.draw(e);
}
public void mouseDragged(MouseEvent mme) {
setLocation(
this.getX() + mme.getX() - this.getWidth() / 2,
this.getY() + mme.getY() - this.getHeight() / 2
);
}
public void mouseMoved(MouseEvent mme) {}
}
|