Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - dusttin

#1
Si, eso ya lo he probado, pero si le meto el desface manualmente, cuando lo pongo en otro ordenador, no sé sí será por la resolución, cambia.

De todas maneras las coordenadas del ratón deberían ser la de la punta, no entiendo que estoy haciendo mal. 

A ver si alguién se le ocurre que puede estar mal.
#2
Hola,

estoy con el PFC y lo hago en java y tengo un error tontisimo con la captura de las coordenadas del ratón mediante los métodos MouseListener  y MouseMotionListener.

El problema es que  actionEvent  no me devuelve las coordenadas de la punta del ratón, sino que hay un desface hacia abajo y hacia la derecha.

Os pongo el código de ejemplo para ver si es que yo no defino bien las clases:


Código clase jframe:


import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
public class Escritorio extends JFrame implements MouseListener{
   private static final long serialVersionUID = 1L;
   public Escritorio(){
      this.setSize(800,600);
      this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      this.addMouseListener(this);
      //this.pack();   
   }
   
   
   public static void main(String[] args) {
      // TODO Auto-generated method stub
      java.awt.EventQueue.invokeLater(new Runnable(){
         public void run(){
            new Escritorio().setVisible(true);
         }
      });
   }
   

   public void mouseClicked(MouseEvent e) {
      // TODO Auto-generated method stub
      this.getContentPane().add(new puerta(e.getX(), e.getY()));
      this.repaint();
      
   }

Código clase JLabel ;

import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;

public class puerta extends JLabel{
   private static final long serialVersionUID = 1L;
      
      public puerta(int x, int y){
         
         this.setLocation(x,y);
         this.setSize(50,50);
         
      }
      
      public void paint(Graphics g){
         g.setColor(Color.BLACK);
         g.fillRect(0,0,getWidth()-1,getHeight()-1);
         super.paint(g);
      }
      
      
}

esto es un ejemplo, si lo solucionamos aquí luego aplico la solución al otro código.
En este código también me pasa lo mismo.