AWT mauskoordinaten im javafenster anzeigen

mauka

Mitglied
Hi Leute,
bin zur Zeit am verzweifeln. Ich schaff es nicht, das bei meinem erstellten Java-Fenster, wenn ich mit der Maus ins Fenster klick die Koordianten im selben Fenster ausgegeben werden. Nur in meiner Konsole von eclipse :/

Bitte um Hilfe =)

Die Fenstereinstellungen (Größe usw sind in einer anderen Klasse, also nich wundern wenn se da jetzt fehlen😉)

Java:
import java.awt.*;
import java.awt.event.*;

public class ProgFenster extends Frame
{
	ProgFenster()
	  {		
		fenster_close fC = new fenster_close();
	    this.addWindowListener(fC);
	    	
	    //Menu
	    MenuItem rot = new MenuItem ("Rot");
		MenuItem blau = new MenuItem ("Gelb");
		MenuItem magenta = new MenuItem ("Magenta");
		MenuItem kreis = new MenuItem ("Kreis");
		MenuItem recht = new MenuItem ("Rechteck");
		  
		Menu hintergrundfarbe = new Menu ("Hintergrundfarbe");
		  hintergrundfarbe.add (rot);
		  hintergrundfarbe.add (blau);
		  hintergrundfarbe.add (magenta);
		
		Menu zeichner = new Menu ("Zeichnen");
		  zeichner.add (recht);
		  zeichner.add (kreis);
		  
		MenuBar leiste = new MenuBar ();
		  leiste.add (hintergrundfarbe);
		  leiste.add (zeichner);
		  
		menuauswahl mA = new menuauswahl();
		hintergrundfarbe.addActionListener(mA);
		
		zeichnen  zN = new zeichnen();
		this.addMouseListener(zN);
		  
		setMenuBar (leiste);

	  }

	class fenster_close extends WindowAdapter
	{
		public void windowClosing(WindowEvent e)
		{
			System.exit(0);
		}
	}
	  
	class menuauswahl implements ActionListener
	  {
	    public void actionPerformed(ActionEvent e)
	    {
	      String fa = e.getActionCommand();
	      
	      if (fa.equals("Rot"))
	      {
	    	  setBackground(Color.red);
	      }
	      
	      if (fa.equals("Gelb"))
	      {
	    	  setBackground(Color.yellow);
	      }
	      
	      if (fa.equals("Magenta"))
	      {
	    	  setBackground(Color.magenta);
	      }
	    }
	  }
	
	class zeichnen implements MouseListener
	{
		public void mouseClicked(MouseEvent e)
		{
			Point l = new Point(e.getXOnScreen(), e.getYOnScreen());
			System.out.println(l);
		}
		public void mouseEntered(MouseEvent e)
		{
		}
		public void mouseExited(MouseEvent e)
		{
		}
		public void mousePressed(MouseEvent e)
		{
		}
		public void mouseReleased(MouseEvent e)
		{
		}
	}
 
	  
}
 
WO soll der Text ausgegeben werden? Vielleicht geht's wenn du ein Label in den Frame legst, und in der mouseClicked-Methode sowas machst wie
label.setText("Der text");
label.repaint();
Ansonsten mal genauer beschreiben (ggf. mit Compilierbarem code)
 
Mhm?
Naja du hast ja auch nur programmiert dass die Ausgabe auf der Konsole ausgegeben wird
Java:
        public void mouseClicked(MouseEvent e)
        {
            Point l = new Point(e.getXOnScreen(), e.getYOnScreen());
            System.out.println(l);
        }

Von alleine kommt die Ausgabe nicht in dein Fenster :autsch:
Was genau willst du denn machen, wie soll der Punkt in deinem Fenster angezeigt werden? Mit einem Label, Textfeld etc.? Dann füge diese Komponente hinzu und rufe dann eben so etwas wie setText auf ...
 
Also hier gibt es gleich mehrere Punkte...
- Gibt es einen Grund, dass du AWT und nicht Swing benutzt? Wenn nicht ist Swing ratsamer. Es baut auf AWT auf und erweitert es (Swing-Komponenten beginnen alle mit einem "J", zB JFrame)
- Um Texte auf einer GUI anzuzeigen, bzw. "auszugeben", werden oft Labels (JLabel) benutzt. In deiner GUI kannst du im einfachsten Fall also ein JLabel erstellen, irgendwo hin layouten und dann in der mouseClicked()-Methode den Text des Labels ändern.
- Klassenname werden in Java eigentlich Groß geschrieben und es wird eher "CamelCase" verwendet als Unterstriche. Solche Gepflogenheiten erleichtern es anderen Java-Kennern deinen Code zu lesen

*edit* oh zu spät 😉
 
danke schonmal für die antworten. also ich muss im prinzip sowas erstellen wie das hier:

4q7pcoci.gif


so das die koordinaten bei dem kreis/viereck dann stehen.

das muss ich dann später auch noch hinkriegen. das man auswählen kann was man zeichnen will, dann einma die maus gedrückt hält, für den startpunkt des bildes, und am endpunkt loslässt 😀
 

Neue Themen


Zurück
Oben