Avatar billede i-mox Nybegynder
09. december 2004 - 11:32 Der er 3 kommentarer og
1 løsning

Hvordan sætter man en MouseListener på en 2D Ellipse?

Tja... spørgsmålets titel siger vel næsten sig selv :-)

Hvordan gør man det?

M;ads
Avatar billede snoop_one Nybegynder
14. december 2004 - 16:53 #1
Her er et lille program der gør det:

package example;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Ellipse2D.Double;

import javax.swing.JFrame;
import javax.swing.JPanel;

/**
* @author Snoop_one
*/
public class Test2dEllipse extends JFrame {

    private JPanel panel;
    private Ellipse2D ellipse;

    public static void main(String[] args) {
        new Test2dEllipse().setVisible(true);
    }

    private Test2dEllipse() {
        super("Click inside ellipse");
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
                System.exit(0);
            }
        });
        addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                if(ellipse.contains(e.getX(),e.getY())){
                    System.out.println("Inside Ellipse - you clicked");
                } else{
                    System.out.println("Outside Ellipse - you clicked");
                }
               
            }
        });
        pack();
        setSize(200,200);
        ellipse = new Ellipse2D.Double(30,50,50,40);
    }
   
    public void paint(Graphics g) {
        g.setColor(Color.red);
        g.drawOval((int)ellipse.getX(), (int)ellipse.getY(), (int)ellipse.getWidth(), (int)ellipse.getHeight());
    }

}
Avatar billede snoop_one Nybegynder
15. december 2004 - 15:34 #2
Ovenstående sætter dog ikke listener'en på ellipse objectet. For at du kan sætte en mouselistener på et object - er det nemmeste at objectets klasse nedarver  java.awt.Component.
Avatar billede i-mox Nybegynder
16. december 2004 - 09:56 #3
Hej Snoop

Tak for dit svar.. Jeg har desværre allerede fundet en løsning, men du skal sgu have point for dit fede svar alligevel!

M;ads
Avatar billede snoop_one Nybegynder
16. december 2004 - 12:31 #4
ok ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester