Mouse event

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
dikere
Δημοσιεύσεις: 158
Εγγραφή: 18 Ιουν 2006 23:46
Τοποθεσία: Τhessaloniki,Serres kai sta Sinnefa
Επικοινωνία:

Mouse event

Δημοσίευση από dikere » 21 Απρ 2008 15:06

εχω δυο κλασεις,

Κώδικας: Επιλογή όλων

import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;
import java.awt.Color;
import javax.swing.JLabel;
import javax.swing.JPanel;

 class MouseTrackerFrame extends JFrame{
	
	private JPanel mousePanel;
	private JLabel statusBar;
	
	public MouseTrackerFrame()
	{
		super("Mouse Events Test");
		
		mousePanel=new JPanel();
		mousePanel.setBackground(Color.GRAY);
		add(mousePanel,BorderLayout.CENTER);
		
		statusBar=new JLabel("Mouse outside JPanel");
		add(statusBar,BorderLayout.SOUTH);
		
		MouseHandler handler=new MouseHandler();
		mousePanel.addMouseListener(handler);
		mousePanel.addMouseMotionListener(handler);
		
	}
	
private class MouseHandler implements MouseListener,MouseMotionListener{
		
		public void mouseCliked(MouseEvent event)
		{
			statusBar.setText(String.format("Cliked at [%d, %d]",event.getX(),event.getY()));
		}
	}
	
}
 
public class MouseTrackerTest {
    
    public static void main(String[] args) {
    	
    	MouseTrackerFrame op=new MouseTrackerFrame();
    	op.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	op.setSize(300,100);
    	op.setVisible(true);
    
    }
}
δυο κλασεις MouseTrackerFrame kai tin MouseTrackerTest, η MouseTrackerFrame ειναι για την δημιουργια του πανελ και των events και η MouseTrackerTest την εκτελεση τους!
Οταν παω να κανω compile βγαζει το παρακατω μηνυμα:

Κώδικας: Επιλογή όλων

MouseTrackerFrame.MouseHandler is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
Aν κανω abstract την εσωτερικη κλαση(MouseHandler) μετα δεν μου μεταγλωτιζει το MouseEvent(handler) μεσα στην συναρτηση δημιουργιας της κλασσης (MouseTrackerFrame)!
Μηπως ξερει κανεις τι παιζετε???
hasta la victoria siempre

Άβαταρ μέλους
dikere
Δημοσιεύσεις: 158
Εγγραφή: 18 Ιουν 2006 23:46
Τοποθεσία: Τhessaloniki,Serres kai sta Sinnefa
Επικοινωνία:

Mouse event

Δημοσίευση από dikere » 22 Απρ 2008 02:02

....και αν καποιος ξερει καποιο διαφορετικο τροπο ωστε να δημιουργηθει καποιο mouse event και αυτο δεκτο ειναι δεν ειναι αναγκη το συγκεκριμενο κωδικα να βρεθει η λυση....το θεμα ειναι να δημιουργηθει event με το ποντικι με οποιοδηποτε κωδικα!
hasta la victoria siempre

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Mouse event

Δημοσίευση από dik_ » 22 Απρ 2008 03:10

Κάνε override τις μεθόδους των MouseListener και MouseMotionListener, έστω και κενές:

Κώδικας: Επιλογή όλων

private class MouseHandler implements MouseListener,MouseMotionListener{
    public void mouseReleased(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    // κτλ...
}

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Mouse event

Δημοσίευση από cherouvim » 22 Απρ 2008 09:04

Καταρχάς μπορείς να υλοποιήσεις το MouseInputListener το οποίο ενοποιεί τα 2 interfaces.
Μετά, και για δική σου ευκολία, μπορείς να κάνεις extend το MouseInputAdapter αντί να υλοποιείς όλες της μεθόδους του παραπάνω interface.

BTW μάλλον δεν χρησιμοποιείς κάποιο IDE. Προτείνω http://www.netbeans.org/

good luck

Άβαταρ μέλους
dikere
Δημοσιεύσεις: 158
Εγγραφή: 18 Ιουν 2006 23:46
Τοποθεσία: Τhessaloniki,Serres kai sta Sinnefa
Επικοινωνία:

Mouse event

Δημοσίευση από dikere » 25 Απρ 2008 14:02

cherouvim έγραψε:Καταρχάς μπορείς να υλοποιήσεις το MouseInputListener το οποίο ενοποιεί τα 2 interfaces.
Μετά, και για δική σου ευκολία, μπορείς να κάνεις extend το MouseInputAdapter αντί να υλοποιείς όλες της μεθόδους του παραπάνω interface.

BTW μάλλον δεν χρησιμοποιείς κάποιο IDE. Προτείνω http://www.netbeans.org/

good luck
Aν καταλαβα καλα, νομιζω οτι λες, οτι μπορει να ειναι καπως ετσι(με τα import στην κορυφη φυσικα):

Κώδικας: Επιλογή όλων

public class MouseHandler extends MouseInputAdapter implements MouseInputListener   {
     
      public void mouseCliked (MouseEvent event)
      {
         statusBar.setText(String.format("Cliked at [%d, %d]",event.getX(),event.getY()));
      }
   }
Aυτο τρεχει αλλα δεν εκτελειτε το event :hammer: , για να συνεχισουμε μεχρι να το πετυχουμε lol!!
hasta la victoria siempre

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες