joseprox
Desconectado
Mensajes: 37
|
Mi vale.....dos cosas......
primero...no trabajes y nunca lo hagas......TRABAJAR DIBUJOS GRAFICOS CON JAVAX.SWING........este paquete no soporta el paint y repaint...debes haccerlo con el paquete de la AWT....
segundo.....te cambié el codigo.....se mueve el cubo.....mientras muevas el mouse........cuando pikes en algun lado.....(en esa posicion se queda un cuadro..).
chequeate el codigo espero te sirva......
package Cubo;
import java.awt.*; import java.util.*; import java.awt.event.*; import javax.swing.*; public class Cubo extends Frame implements MouseMotionListener, MouseListener { int x=100,y=400,width=90,height=90,ancho=10,alto=10,ban=0; int m=0,b=0; Point punto = new Point(); TextField jt = new TextField(); Panel paneldelCuadro = new Panel(); Panel panelGeneral = new Panel(); GraficaPanel graficapanel = new GraficaPanel(); int enX = 0; int enY = 0; public Cubo(){ setLayout(new BorderLayout (50,20)); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); enX = (int)d.getWidth(); enY = (int)d.getHeight(); jt.setFont(new Font("ARIAL",1,14)); jt.setBounds(10,10,(enX-30),30); jt.setPreferredSize(new Dimension(20,30)); add(jt,BorderLayout.NORTH); graficapanel.addMouseMotionListener(this); graficapanel.addMouseListener(this); add(graficapanel,BorderLayout.CENTER); add(new JLabel(""),BorderLayout.EAST); add(new JLabel(""),BorderLayout.WEST); add(new JLabel(""),BorderLayout.SOUTH); //this.setMinimumSize(new Dimension(400,50)); setSize(enX,enY-30); show(); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); } public void mouseReleased(MouseEvent e){ System.out.println ("click en "); } public void mouseDragged(MouseEvent e) { /*if( e.getX()>55&&e.getX()<530 && e.getY()>55&&e.getY()<500) setLocation((int)(e.getX()-punto.x),(int)(e.getY()-punto.y)); */ } public void mousePressed(MouseEvent e){ graficapanel.guardarenVector(); } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseMoved(MouseEvent e){ jt.setText("enX = "+e.getX() +" - "+"enY = "+e.getY()); //graficapanel.EstablecerPuntos(0,0,0,0); graficapanel.EstablecerPuntos(e.getX(),e.getY(),50,50); //repaint(); } /* public void paint(Graphics g){ graficapanel.mostrar(g); }*/ public static void main(String ars[]){ new Cubo(); } } class GraficaPanel extends Panel { int x = 0; int y = 0; int x1 = 0; int y1 = 0; boolean activada; Graphics gr; //este vector guardara un cuadro cada ves que se dé un //click en el panes Vector vector = new Vector(); public GraficaPanel(){ //this.setBackground(Color.CYAN); } public void EstablecerPuntos(int xIni,int yIni,int x1Ini,int y1Ini){ x = xIni; y = yIni; x1 = x1Ini; y1 = y1Ini; repaint(); } public void guardarenVector(){ activada = true; Datos datos = new Datos(x-(x1/2),y-(y1/2),x1,y1); vector.addElement(datos); //repaint(); } public void mostrar(Graphics g){ } public void paint(Graphics g){ int X = (getWidth()/2)-5; int Y = (getHeight()/2)-5; g.setColor(Color.BLACK); g.drawRect(x-(x1/2),y-(y1/2),x1,y1); gr = g; g.setColor(Color.BLACK); g.drawLine(0,getHeight()/2,getWidth(),getHeight()/2); g.setColor(Color.BLUE); g.fillOval(x-(x1/2),y-(y1/2),x1,y1); //g.fillRect(x,y,x1,y1); //g.drawRect(10,10,100,100); for(int i=0;i<vector.size();i++){ Datos datos = (Datos)vector.get(i); System.out.println (datos.x); g.drawRect(datos.x,datos.y,datos.x1,datos.y1); g.fillOval(datos.x,datos.y,datos.x1,datos.y1); } } } class Datos{ int x = 0; int y = 0; int x1 = 0; int y1 = 0; Graphics g; public Datos(int xIni,int yIni,int x1Ini,int y1Ini){ x = xIni; y = yIni; x1 = x1Ini; y1 = y1Ini; } }
|