Koordinaten der Bildschirmposition auslesen (MouseListener?)

Status
Nicht offen für weitere Antworten.
Hallo,

ich suche eine Möglichkeit mit JAVA die Bildschirmposition der Maus an einer belibiegen Stelle auf dem Monitor (nicht nur im Applikationsfenster von JAVA) abzufangen.

ich programmiere gerade eine Mustererkennungssoftware mit Java. Ich möchte gerne Zahlen und Buchstaben die handgeschrieben sind als Matrix in Java weiterverarbeiten.
Dazu möchte ich ein Grafik Tablet verwenden(Aiptek - einfachste Ausführug) um die Handschrift einzulesen.

Am schönsten wäre es also, wenn es eine Funktion geben würde, die nach Programmstart die gesamte Bildschirmfläche auf Klicks und Motion überwacht und die Koordinaten übermittelt.
Das Ergebniss soll dann in einem kleinen zweiten Fenster, das eine Ebene dahinter liegt angezeigt werden.

Geht so etwas überhaupt?

Danke für jede Idee
Gruß
Nils
 

Campino

Top Contributor
Wenn man Windows durchsichtig machen kann würde ich so eines über den ganzen Bildschirm legen, nur reagieren dann sachen dahinter nicht mehr, ansonsten JNI.
 
Moinsen,

besten Dank für die Infos.
Werde beide mal ausprobieren.

Die gefakte Transparenz wäre eine gute Sache, da man ja schreiben soll und danach direkt erkannt wird was geschrieben wurde.

Ich habe es leider nicht schaffen können, das Grafik Tablet nur auf einen Fensterbereich zu beschränken. Daher muss man wohl irgendwie improvisieren.

Gruß
Nils
 
Hallo,

also ich habe jetzt über den ganzen Desktop einen JFrame gelegt, der als Hintergrund einen Screenshot des aktuellen Desktop bekommt.
Dann lese ich über MouseDragged die gezeichneten Koordinaten ein und stelle sie grafisch dar.
Ein Thread überwacht die Eingabe über 3s und generiert dann eine 28x28 Matrix die die gezeichneten Pixel darstellt.
Das wird dann wiederum an einen Prozess übergeben, der die Zahlen und Buchstaben erkennen soll.

Der Weg über MouseInfo lieferte zu viele Koordinatenpaare. Der Screenshot bremst in grafikschwachen Systemen so stark, dass die Eingabe mit dem GrafikTablett etwas schwierig wird.

Sicher keine perfekte Lösung, aber vorerst ein guter Workaround .

Besten Dank für die Tipps

Gruß
Nils
 
Hier mal ein paar Auszüge aus dem Programm, das die Eingabe auf dem Bildschirm einliest:

Hier werden die Koordinaten eingelesen, gepeichert und mit Paint auf das übergrpße JPanel gemalt

Code:
public void mouseDragged(MouseEvent ev) { 
			
		int x=ev.getX();
		int y=ev.getY();
		koordinaten(x,y);
		repaint();
				
	}
Bei einem Mausklick wird ein Thread gestartet, der das Malen über 3 s auf dem Display aufzeichnet. (also die Koordinaten)
Da ich mir nicht schneller zu helfen wusste, habe ich mir hier eine globale Variable erschlichen damit der Thread nicht mehrmals während einer Eingabe gestartet wird. Er wird erst nach dem Interrupt gegenüber dem Thread zurückgesetzt :)
Code:
public void mousePressed(MouseEvent arg0) {
		
		if (Globals.getInstance().getmalen()){
		
		Globals.getInstance().endemalen();
		
		Inputhread test = new Inputhread();
		test.start();
		repaint();
		
		
		}
Hier gibt es das Screenshot über einen Robot das in voller Größe auf den Hintergrund gelegt wird.
Code:
	public Image shot() throws Exception {
		
		
		// Überprüfen der Auflösung
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		Dimension screenSize = toolkit.getScreenSize();
		Rectangle screenRect = new Rectangle(screenSize);
		
		// Screenshot erzeugen
		Robot robot = new Robot();
		BufferedImage image = robot.createScreenCapture(screenRect);
		
		
		return image;
 
	}

Hier wird das JFrame initialisiert mit dem Screenshot
Code:
public void initialize() {
		
		Screenshot shot = new Screenshot();
    	try {
			image = shot.shot();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//siehe Mausfunktion oben\\
		BackgroundPanel panel = new BackgroundPanel(image);
		
		//Abfrage Bildschirmauflösung
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
		
		//Fenstergröße auf Bildschirmgröße setzen
		this.setSize(d.width,d.height); 
		this.setLocation( (d.width - getSize().width ) / 2,(d.height- getSize().height) / 2 );
		this.setUndecorated(true);
		this.setContentPane(panel);
		
		this.addMouseMotionListener(panel);
		this.addMouseListener(panel);
		this.setVisible(true);
		
	}
Hier wird von MouseClicked der folgende Thread gestartet, der dann nach drei Sekunden wieder aufwacht und das mit Koordinaten vollgeschrieben Array wieder löscht und ggf. den nächsten Buchstaben einliest und die oben genannte Variable wieder zurücksetzt.
Code:
public void run(){
		
			try {
				sleep(3000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

Also wie gesagt, es funktioniert schon recht gut, die Eingaben kann man sauber aus dem Array auslesen und weiterverarbeiten.

Gruß
Nils[/code]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Polygon Koordinaten richtig sortieren AWT, Swing, JavaFX & SWT 7
C Kleineres Bild an bestimmte Koordinaten setzen AWT, Swing, JavaFX & SWT 6
S JButtons an Koordinaten setzen AWT, Swing, JavaFX & SWT 3
J Java FX Koordinaten NACH Animation setzen, wie? AWT, Swing, JavaFX & SWT 9
F Swing Rotation eines Bildes mit beliebigen Koordinaten um den Mittelpunkt AWT, Swing, JavaFX & SWT 3
B Transformation und Darstellung von Koordinaten AWT, Swing, JavaFX & SWT 5
J in actionPerformed() Koordinaten ändern AWT, Swing, JavaFX & SWT 9
P JavaFX Szenegraph - Koordinaten von Children einer Group AWT, Swing, JavaFX & SWT 0
C Bild Koordinaten AWT, Swing, JavaFX & SWT 6
S Polygon mit double-Koordinaten AWT, Swing, JavaFX & SWT 2
K 3D-Grafik 2 "Boxen" auf unterschiedlichen Koordinaten AWT, Swing, JavaFX & SWT 2
Luk10 Fragen zum Koordinaten System AWT, Swing, JavaFX & SWT 3
K LayoutManager Buttons auf bestimmte x und y Koordinaten AWT, Swing, JavaFX & SWT 2
W 2D-Grafik Koordinaten nicht immer die selben AWT, Swing, JavaFX & SWT 9
J Koordinaten von JButton AWT, Swing, JavaFX & SWT 2
C Caret Position mit X-Y-Koordinaten ermitteln AWT, Swing, JavaFX & SWT 2
D Swing JTable, Zellen-Farbe über Koordinaten ändern AWT, Swing, JavaFX & SWT 9
Y AWT Maus Koordinaten abspeichern in eine Textfile AWT, Swing, JavaFX & SWT 3
D Swing JViewPort, Absolut Koordinaten berechnen. AWT, Swing, JavaFX & SWT 2
C permanente aktualisierung der Koordinaten der Maus auf einem Panel AWT, Swing, JavaFX & SWT 8
T SWT Canvas Koordinaten per MouseMove auslesen AWT, Swing, JavaFX & SWT 1
S Koordinaten aus Array verwenden zum zeichnen auf JPanel?! AWT, Swing, JavaFX & SWT 3
S Swing Text -> HTML: Caret-Koordinaten verschoben AWT, Swing, JavaFX & SWT 6
aze SwingConstants.Center Koordinaten für JLabel herausfinden AWT, Swing, JavaFX & SWT 6
T Choice "gezielt" darstellen aber wie - mit Koordinaten aber wie? AWT, Swing, JavaFX & SWT 6
D Koordinaten von einem Kreissegment berechnen AWT, Swing, JavaFX & SWT 6
D Mouse Koordinaten AWT, Swing, JavaFX & SWT 2
R drawString mit double Koordinaten AWT, Swing, JavaFX & SWT 5
M Grafik flexibel an berechneten Koordinaten positionieren AWT, Swing, JavaFX & SWT 4
N Alle Pixel-Koordinaten von z.B. g.drawLine(.) speichern AWT, Swing, JavaFX & SWT 7
N Koordinaten erfassen AWT, Swing, JavaFX & SWT 5
S Koordinaten/Raster (ähnlich Schachbrett) anzeigen/ausblenden AWT, Swing, JavaFX & SWT 10
F Ermittlung der X- und Y- Koordinaten im Tree bei Tastaturst. AWT, Swing, JavaFX & SWT 5
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
it_is_all Swing Mehrere JComboBoxen - wie die versch. Boxen mit ItemStateChange auslesen? AWT, Swing, JavaFX & SWT 3
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
Soloeco Swing JTextField auslesen Klassen übergreifend AWT, Swing, JavaFX & SWT 16
M JavaFX - Array in View auslesen AWT, Swing, JavaFX & SWT 12
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
B JavaFX Symbole aus Fonts auslesen AWT, Swing, JavaFX & SWT 1
sandaime Swing Thread für CMD auslesen AWT, Swing, JavaFX & SWT 16
G Werte aus dem GUI Auslesen AWT, Swing, JavaFX & SWT 8
3 JComboBox - Action - Auslesen & Umwandeln AWT, Swing, JavaFX & SWT 9
X Swing Per Button die Labels und Textfelder auslesen AWT, Swing, JavaFX & SWT 8
D JavaFX Dynamisch erzeugte Checkboxen aus VBox auslesen AWT, Swing, JavaFX & SWT 3
thobren JavaFX Inhalte aus dynamischen vbox mit TextArea auslesen AWT, Swing, JavaFX & SWT 9
F geänderten Textfeldinhalt mit parse auslesen AWT, Swing, JavaFX & SWT 1
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
M Swing JFreechart X-Achse Tick auslesen AWT, Swing, JavaFX & SWT 13
T Swing jComboBox auslesen mit Datenbankanbindung AWT, Swing, JavaFX & SWT 3
P Swing JTable Werte auslesen bzw überschreiben AWT, Swing, JavaFX & SWT 5
O Swing Text aus Textfield auslesen AWT, Swing, JavaFX & SWT 8
T Swing "Textgröße" aus OS auslesen AWT, Swing, JavaFX & SWT 3
D Swing Farbe aus Pixel vom JFrame auslesen AWT, Swing, JavaFX & SWT 17
R Array aus einem Objekt auslesen AWT, Swing, JavaFX & SWT 4
F Swing jComboBox auslesen AWT, Swing, JavaFX & SWT 6
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
R Int aus JSpinner auslesen und Tabelle erstellen AWT, Swing, JavaFX & SWT 3
X Gridbaglayout gridx + gridy auslesen? AWT, Swing, JavaFX & SWT 7
M JTextField gibt beim auslesen null aus AWT, Swing, JavaFX & SWT 9
L SWT Eingabefelder beim Schließen des Forms auslesen AWT, Swing, JavaFX & SWT 3
D Applet Auslesen von Images aus Ressourcen AWT, Swing, JavaFX & SWT 29
F icon aus exe auslesen mithilfe des JFilechooser ? AWT, Swing, JavaFX & SWT 4
F Textfelder auslesen AWT, Swing, JavaFX & SWT 12
T 3D-Grafik (Java3D) Aus einem Objekt einer Szene (Würfel, Ebene) die wichtigen Randkoordinaten auslesen AWT, Swing, JavaFX & SWT 3
P gleichanfangende Zeilen solange auslesen bis es die gibt AWT, Swing, JavaFX & SWT 12
J JTextField auslesen lassen AWT, Swing, JavaFX & SWT 4
C Swing TextField auslesen AWT, Swing, JavaFX & SWT 21
C TextFelder auslesen AWT, Swing, JavaFX & SWT 20
E Textfeld auslesen AWT, Swing, JavaFX & SWT 2
F SWT Tabelle Zeile auslesen AWT, Swing, JavaFX & SWT 3
M Position eines JLabels mit getX() auslesen AWT, Swing, JavaFX & SWT 2
D SWT CheckBox auslesen (Window Builder Pro) AWT, Swing, JavaFX & SWT 2
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
J Mausposition auslesen AWT, Swing, JavaFX & SWT 4
L Name des JLabels auslesen bei Mouseclick AWT, Swing, JavaFX & SWT 2
A Swing Slider-Value auslesen und weitergeben AWT, Swing, JavaFX & SWT 4
B Swing Betrag mit Komma aus jformattedtextfield auslesen. AWT, Swing, JavaFX & SWT 2
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
K Text vom JTextField auslesen AWT, Swing, JavaFX & SWT 9
E werte aus List auslesen AWT, Swing, JavaFX & SWT 2
R Textfield auslesen auf Anforderung AWT, Swing, JavaFX & SWT 4
M Zeitkritisches auslesen von Tastatureingaben AWT, Swing, JavaFX & SWT 6
M Swing JTextField "onthefly" auslesen und berechnen AWT, Swing, JavaFX & SWT 7
C Swing JPasswordField Password auslesen AWT, Swing, JavaFX & SWT 7
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
K JTable Werte auslesen AWT, Swing, JavaFX & SWT 2
T JSpinner in JTable: Problem beim Auslesen, funktioniert erst beim Zellwechsel AWT, Swing, JavaFX & SWT 7
3 2D-Grafik Rechtecke auf Bilder legen und auslesen AWT, Swing, JavaFX & SWT 4
P Swing ComboBox(en) in JTable auslesen und ausgeben AWT, Swing, JavaFX & SWT 11
1 Textfeld auslesen AWT, Swing, JavaFX & SWT 11
R TextField auslesen & in Objekteigenschaften speichern AWT, Swing, JavaFX & SWT 22
J JSpinner + SpinnerNumberModel int auslesen AWT, Swing, JavaFX & SWT 2
S JPanel auslesen AWT, Swing, JavaFX & SWT 3
S JTextField auslesen AWT, Swing, JavaFX & SWT 2
M JTabbedPane - Tab auslesen AWT, Swing, JavaFX & SWT 2
M auslesen mehrerer JComboBoxen funktioniert nicht AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben