Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen.

VPChief

Bekanntes Mitglied
Hallo,

Mein Programm macht ein Screenshot von einer bestimmten Position. Wenn man das FEnster verschiebt macht es allerdings einen Screenshot vom Desktop.
Ich habe auch schon viel gefunden, allerdings benutzen die immer
setUndecorated(true);.
Ich würde meine Minimieren Maximieren Schliessen Buttons gerne behalten, deshalb meinene Frage:
geht das icrgendwie dass man Ein JFrame ohne setUndecorated(true); nicht verschiebbar machen kann?
Würde mich sehr Freuen eine Antwort zu bekommen

Grüße
 
Moin, vielleicht findest du da die passende Lösung:

 
Hast du das Programm getestet?
Code:
package programme;

import javax.swing.*;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;

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);
    }
}

Bei mir läufts..
 
Hatte ausversehen einen Buchstaben gelöscht... Jedenfalls läuft es jetzt. Diesen Beitrag hatte ich übesehen. Danke dass du mich darauf hingewiesen hast
 

Neue Themen


Zurück
Oben