Mouse event und exit on close

Alumiso

Mitglied
Hallo JAVA´ler,
habe da ein kleines Problem und kan es auch nach langer rechersche nicht lösen.
Möchte gerne ein fenster schliessen wenn der Benutzer die Maus bewegt.



Java:
package fullscreen;

import java.awt.*;
import java.awt.event.*;

import javax.print.DocFlavor.URL;
import javax.swing.*;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
//import com.sun.image.codec.jpeg.JPEGCodec;
import java.io.*;

public class fenster {
  JFrame frame;
    
    public fenster() {
	frame = new JFrame("Test");
	
	Toolkit tk = Toolkit.getDefaultToolkit();
	int xSize = ((int) tk.getScreenSize().getWidth());
	int ySize = ((int) tk.getScreenSize().getHeight());
	frame.setUndecorated(true);  
	frame.setSize(xSize,ySize);
	frame.show();
	frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    }

    public static void main(String[] args) {
	fenster app = new fenster();
	
	//if ( mouseMove||keyPress ){
	  //  JFrame.EXIT_ON_CLOSE;
	}
    }

Zu beachten ist hierbei, das das Fenster "frame.setUndecorated(true);" -also keinerlei Ramen etc.
haben soll, weil es sich auf die Bilderpräsentation stöhrend ausweirken würde. Normalerweise würde man ja auf ein kleines Kreutz rechts oben klicken und das fenster, bzw die Anwendung würde wieder schliessen. Da aber die GUI Elemente reduziert sind, möchte ich es mit einer Mausbewegung schliessen wie bei einem Screensaver.

Wie also bekomme ich das realisiert?
Viele Grüße
Alumiso
 
Zuletzt bearbeitet von einem Moderator:

GUI-Programmer

Top Contributor
MouseMotionListener auf die ContentPane des JFrames - und wenn sich die Maus bewegt (, also mouseMoved(...) ein Event feuert,) dann entweder deinFrame.dispose(); oder System.exit(0); aufrufen (oder evtl. nur das Fensterverkleinern, was du eben willst).
 
A

alumiso@web.de

Gast
leider weis ich nicht, wie ich das (eincoden) soll.Da gabs schon zu viel infos bei Oracle aber für einen Anfängerwie mich nicht zu durchschauen. Wie mach ich´s?
 

Fab1

Top Contributor
Den JAVA: 14.2.2 Mausklicks und Mausbewegungen musst du auf die contentPane des JFrames setzen. In dem Beispiel von dem Link wird der JFrame benutzt, laut GUI-Programmierer musst du diesen allerdings auf die ContentPane setzen.

Anschließend musst du in der MouseMoved Methode einfügen. Diese ist Pflicht, da du auch das Interface implementieren musst. Ein Interface ist eine Vereinbarung, dass best. Methoden in einer Klasse enthalten sein müssen.

In dieser Methode, die du einfügen musst, musst du dann entsprechend weiterverfahren. Also das Programm schließen o.ä. siehe oben GUI-Programmierer
 

Alumiso

Mitglied
Sorry wo ist denn hier das uminöse ContentPane?

Java:
package fullscreen;
 
import java.awt.*;
import java.awt.event.*;
 
import javax.print.DocFlavor.URL;
import javax.swing.*;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
//import com.sun.image.codec.jpeg.JPEGCodec;
import java.io.*;
 
public class fenster {
  JFrame frame;
    
    public fenster() {
    frame = new JFrame("Test");
    
    Toolkit tk = Toolkit.getDefaultToolkit();
    int xSize = ((int) tk.getScreenSize().getWidth());
    int ySize = ((int) tk.getScreenSize().getHeight());
    frame.setUndecorated(true);  
    frame.setSize(xSize,ySize);
    frame.show();
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    }
 
    public static void main(String[] args) {
    fenster app = new fenster();
    
    //if ( mouseMove||keyPress ){
      //  JFrame.EXIT_ON_CLOSE;
    }
    }


Wo kommt das rein?
 

Fab1

Top Contributor
Hi,

hab dir das mit der ContentPane sowie dem implementieren des Interfaces und dem einfügen der dazugehörigen Methoden mal gemacht. Denke sollte so passen, ist natürlich noch nicht fertig, das Programm beendet sich nämlich noch nicht. Aber ein bisschen willst du dich sicherlich auch noch damit spielen :)

Außerdem habe ich deine Methode frame.show() mal ausgeklammert und stadtdessen frame.setVisible(true); verwendet. show() ist deprecated und sollte nicht mehr verwendet werden. Warum etc. entnimmst du der API falls es dich interessiert.
Java:
import javax.swing.*;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

public class Test implements MouseMotionListener{
  JFrame frame;
    
    public Test() {
    frame = new JFrame("Test");
    
    Toolkit tk = Toolkit.getDefaultToolkit();
    int xSize = ((int) tk.getScreenSize().getWidth());
    int ySize = ((int) tk.getScreenSize().getHeight());
    frame.setUndecorated(true);  
    frame.setSize(xSize,ySize);
    frame.setVisible(true); //.show() sollte seit 1.5 nicht mehr verwendet werden.
    
    frame.getContentPane().addMouseMotionListener(this);
    
    frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    }
 
    public static void main(String[] args) {
    	Test app = new Test();
    
    //if ( mouseMove||keyPress ){
      //  JFrame.EXIT_ON_CLOSE;
    }

	@Override
	public void mouseDragged(MouseEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseMoved(MouseEvent arg0) {
		
		
	}
    }
 

GUI-Programmer

Top Contributor
@Fab1: Ja, ist ja ganz schön, was du da lieferst, aber es langt dann auch wieder. Schließlich sollte der TO schon in der Lage sein nach ContentPane zu googeln. (--> Eigeninitiative)
 

bERt0r

Top Contributor
Möchte gerne ein fenster schliessen wenn der Benutzer die Maus bewegt.
Wirklich? Ja wenn das sein muss: MouseListener hinzufügen: mouseMoved(...){xxx.setVisible(false);}
und wenns "nicht aufgeht" dann gehts vielleicht auf, du bewegst nur die maus schon beim kompilieren und es schließt schon wieder
 

jgh

Top Contributor
hier mal ein funktionierendes Bsp...mit einem kleinen hässlichen Workaround..
Java:
import java.awt.event.*;
import javax.swing.*;

public class fenster implements MouseMotionListener, KeyListener {
	JFrame frame;
	boolean firstTime = true;

	public fenster() {
		frame = new JFrame("Test");

		// Toolkit tk = Toolkit.getDefaultToolkit();
		// int xSize = ((int) tk.getScreenSize().getWidth());
		// int ySize = ((int) tk.getScreenSize().getHeight());
		// frame.setSize(xSize, ySize);
		frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frame.setUndecorated(true);

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.addMouseMotionListener(this);
		frame.addKeyListener(this);
		frame.setVisible(true);

	}

	public static void main(String[] args) {
		fenster app = new fenster();

	}

	@Override
	public void mouseDragged(MouseEvent e) {

	}

	@Override
	public void mouseMoved(MouseEvent e) {
		if (!firstTime) {
			frame.dispose();
		} else {
			firstTime = false;
		}
	}

	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void keyPressed(KeyEvent e) {
		frame.dispose();

	}

	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub

	}

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Mouse Event in anderemm Event auslösen AWT, Swing, JavaFX & SWT 50
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
Iron Monkey JTable 2 Selektionsfarben Mouse-Event AWT, Swing, JavaFX & SWT 8
T mouse-event auf jcolorchooser AWT, Swing, JavaFX & SWT 2
S Mouse-Event in JTable AWT, Swing, JavaFX & SWT 3
G mouse events AWT, Swing, JavaFX & SWT 6
N Mouse methods AWT, Swing, JavaFX & SWT 10
P kein Scrollen nach affinertransformation bei mouse dragged AWT, Swing, JavaFX & SWT 2
N Java Mouse Listiner macht alles zusammen AWT, Swing, JavaFX & SWT 4
M Java FX Mouse over AWT, Swing, JavaFX & SWT 4
U Mouse + Keylistener AWT, Swing, JavaFX & SWT 12
B GUI mit Mouse Touch AWT, Swing, JavaFX & SWT 27
S Mouse Events in einer sortierten JTable unterscheiden AWT, Swing, JavaFX & SWT 18
H Rechteck via Mouse bewegen AWT, Swing, JavaFX & SWT 2
H Java Robot mouse funktioniert nur auf Notebook nicht. AWT, Swing, JavaFX & SWT 4
E JFace ListSelectionDialog & Mouse-Events? AWT, Swing, JavaFX & SWT 2
lumo SWT Composite Mouse Track Lisetner AWT, Swing, JavaFX & SWT 2
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
M Mouse Wheel Listener reagiert mehrmals AWT, Swing, JavaFX & SWT 5
R JTable - eigener Editor - Mouse events AWT, Swing, JavaFX & SWT 2
H fwststellen, ob sich Mouse auf dem Rand befindet AWT, Swing, JavaFX & SWT 3
Dit_ Buttons Mouse-Over Effekt AWT, Swing, JavaFX & SWT 8
R Key und Mouse Events AWT, Swing, JavaFX & SWT 2
D Mouse Koordinaten AWT, Swing, JavaFX & SWT 2
P Mouse Listener beenden AWT, Swing, JavaFX & SWT 14
raptorrs JFrame nur anzeigen, solange die Mouse gedrückt ist AWT, Swing, JavaFX & SWT 3
G JButton Mouse Over Text AWT, Swing, JavaFX & SWT 2
T Mouse Popup AWT, Swing, JavaFX & SWT 2
M Bug; Swing-Worker, Progressbar und Mouse AWT, Swing, JavaFX & SWT 22
R Mouse Wheel funktioniert nicht im JDialog ! AWT, Swing, JavaFX & SWT 4
M eine zeichnen beim mouse ziehen AWT, Swing, JavaFX & SWT 8
K Mouse Events der Scrollbar/pane AWT, Swing, JavaFX & SWT 2
V JPopupMenu Problem und Tipp zu mouse/key AWT, Swing, JavaFX & SWT 3
S Rechteck per Mouse aufziehen AWT, Swing, JavaFX & SWT 7
K Mouse Position nach Drag und Drop? AWT, Swing, JavaFX & SWT 4
M Grafikobjekte mit Mouse auswählen und verschieben AWT, Swing, JavaFX & SWT 2
D JLabel aus einem Mouse- bzw. KeyListener aendern AWT, Swing, JavaFX & SWT 2
Juelin in javafx Event auslösen AWT, Swing, JavaFX & SWT 4
schoel27 Mehrere JButtons sollen das gleiche Event auslösen AWT, Swing, JavaFX & SWT 2
K Warum genau hat man einen Listener, dann ein Event und was ist ein Adapter AWT, Swing, JavaFX & SWT 2
izoards Java FX Window Event SHOWING AWT, Swing, JavaFX & SWT 17
Fridolin111 Der KeyListener Löst kein event aus AWT, Swing, JavaFX & SWT 6
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
J CheckBoxListCell auf click event in listView reagieren AWT, Swing, JavaFX & SWT 1
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
O Swing Event Dispatch Thread AWT, Swing, JavaFX & SWT 1
B Swing Windowbuilder Rückgabewert im Event AWT, Swing, JavaFX & SWT 3
Z Befehl Action Event Verlassen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
Pr0m3theus Animation nach Event AWT, Swing, JavaFX & SWT 6
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
Sugan Swipe Event? AWT, Swing, JavaFX & SWT 8
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
H Event Handling JavaFx - auf Event warten AWT, Swing, JavaFX & SWT 4
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
T Internes Event-handling in TextField/JTextField AWT, Swing, JavaFX & SWT 2
M Swing OnLoad-Event o. Ä. AWT, Swing, JavaFX & SWT 3
D Event Handling in Komplexen Anwendungen AWT, Swing, JavaFX & SWT 9
D Event Handling "Plötzlich" kein mouseMoved-Event AWT, Swing, JavaFX & SWT 2
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
J Swing JMenuItem-Event?? AWT, Swing, JavaFX & SWT 3
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
F Event Handling AWT, Swing, JavaFX & SWT 7
J Button Event nur einmal ausführen AWT, Swing, JavaFX & SWT 3
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
T Callback vs. Event listener AWT, Swing, JavaFX & SWT 7
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
S MenuBar ActionListener Event ... AWT, Swing, JavaFX & SWT 6
T Anzahl Event Listeners AWT, Swing, JavaFX & SWT 4
A Swing JButton int im Event AWT, Swing, JavaFX & SWT 9
G Swing Onkeyup Event AWT, Swing, JavaFX & SWT 3
P Action Event abfangen etwas anders? AWT, Swing, JavaFX & SWT 2
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
P Swing Event das ausgelöst wird, sobald Änderung der Größe Abgeschlossen ist AWT, Swing, JavaFX & SWT 4
A Shift-Tab-Event auslösen AWT, Swing, JavaFX & SWT 5
T Event Dispatch Thread und noch ein Thread AWT, Swing, JavaFX & SWT 7
W Swing Event bei Schließen des Fensters AWT, Swing, JavaFX & SWT 6
A Probleme mit dem KeyReleased-event AWT, Swing, JavaFX & SWT 3
J Doppelklick Event AWT, Swing, JavaFX & SWT 32
jueki Event bei Änderung der Spaltenbreite in einem JTable AWT, Swing, JavaFX & SWT 15
D jtabbedpane Event VOR tab-Wechsel AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Event Problem AWT, Swing, JavaFX & SWT 5
M JTree => Event Dispatching Error AWT, Swing, JavaFX & SWT 2
D Event in Fenster ausgeben + Observer + kein Plan AWT, Swing, JavaFX & SWT 2
H warum kann ich das focus event nicht abfangen ? AWT, Swing, JavaFX & SWT 5
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
H KeyUp-Event/Ereignis AWT, Swing, JavaFX & SWT 6
C Event Frage AWT, Swing, JavaFX & SWT 7
M Swing WindowListener -> Event abbrechen? AWT, Swing, JavaFX & SWT 2
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
R JTextField - Event bei jedem Buchstaben AWT, Swing, JavaFX & SWT 2
R WindowClosing Event - Schließen rückgängig machen? AWT, Swing, JavaFX & SWT 2
M Actionlistener ohne Event -.-?! AWT, Swing, JavaFX & SWT 2
O Probleme beim Zeichnen und AWT-Event-Queue-0 Exception AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben