JFrame fixieren

vodkaz

Mitglied
Ahoi Leute 🙂
Da ich im Internet nichts gefunden habe, wollte ich mal hier fragen ... Ist es möglich das JFrame am Bildschirm zu fixieren sodass der User es nicht verschieben kann ?
Danke im voraus,
MfG Vodkaz 🙂
 
Ob es so in der art funktioniert weiß ich nicht aber du kannst setUndecorated machen dann ist es nicht möglich das JFrame zu verschieben, du hast jedoch auch keine knöpfe mehr. Die könntest du jedoch gegen deine eigenen austauschen.
 
Oder du verwendest einen ComponentListener und rufst bei Verschieben des Frames setLocation(int, int) auf. Ich weiß aber nicht, wie schnell das ist, oder ob du eine Endlosschleife erzeugst, weil setLocation(int, int) womöglich componentMoved(ComponentEvent) aufruft.
 
Funktioniert , aber schön ist was anderes ( auch vom Optischen Aspekt her ) :

Java:
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.JFrame;

@SuppressWarnings("serial")
public class Main extends JFrame{
	
	final static int WIDTH = 300;
	final static int HEIGHT = 300;
	
	public Main(){
		setSize(WIDTH, HEIGHT);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		addComponentListener(new Listener());
		
	}
	
	public JFrame getFrame()			{return this;}

	class Listener implements ComponentListener{

		@Override
		public void componentResized(ComponentEvent e){}

		@Override
		public void componentMoved(ComponentEvent e){
			getFrame().setLocation(500, 500);
		}

		@Override
		public void componentShown(ComponentEvent e){}

		@Override
		public void componentHidden(ComponentEvent e){}
		
	}
	
	public static void main(String[] args){
		new Main().setVisible(true);
	}
}
 
Zuletzt bearbeitet:
Wenn du über Listener gehst, musst du damit rechnen, das die Oberfläche "flackert", weil kurze Zeit der verschobene/minimierte JFrame sichtbar und dann dein Listener die Aktion rückgängig machen muss.

Ich würde an deiner Stelle mal darüber nachdenken, ob das eine sinnvolle Anforderung ist😉

Mir ist praktisch keine Applikation bekannt, in der ein Fenster angezeigt wird, das aber nicht mehr verschoben werden kann. Du erkennst hoffentlich, das Verschieben ja nur eine Aktion ist, die vermieden und rückgängig gemacht werden müsste. Minimieren/Maximieren wohl dann auch und wie sieht es mit Schliessen aus?

Und wenn es sinnvoll ist, würde ich mir JDialog in einem eigenen JFrame genauer untersuchen.
Aber wie angedeutet finde ich die Anforderung Mummpitz:noe:
 

Zurück
Oben