Wie sag ich einem JFrame das er sich dem Bildschirm anpassen soll?
Als Standard hab ich die Größe auf 1920x1080 gesetzt aber jetzt möchte ich dem Programm sagen das er sich Verkleinern soll wenn ich das Manuel Verkleinere, bleibt das Panel und der ganze Rest(z.B JLabel) in der gleichen Größe, wodurch man nicht alles sieht?
3 Antworten
![](https://images.gutefrage.net/media/default/user/5_nmmslarge.png?v=1438863662000)
Habe noch nicht viel mit JFrames etc. programmiert, aber es sollte möglich sein, bei einem Eventaufruf des Fensters, wenn es seine Größe ändert eine Methode ausgeführt wird, die die neue Fenstergröße einließt und dann die Größe der jFrame neu setzt...
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Hallo DeathNoteGood,
ich würde das so lösen:
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.Toolkit;
import static java.awt.Frame.MAXIMIZED_BOTH;
import static javax.swing.WindowConstants.EXIT_ON_CLOSE;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
JFrame mainFrame = new JFrame("Screen size");
mainFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
mainFrame.setSize(screenSize);
mainFrame.setExtendedState(MAXIMIZED_BOTH);
mainFrame.setVisible(true);
}
}
mainFrame.setExtendedState(MAXIMIZED_BOTH);
Sorgt dafür, dass das JFrame maximiert angezeigt wird. Dadurch wird der Bildschirm komplett ausgefüllt.
Dazu setze ich noch mit
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
mainFrame.setSize(screenSize);
Die JFrame Größe auf die Bildschirmgröße, damit das JFrame sich nicht komplett minimiert, wenn der Nutzer den JFrame Modus auf nicht-maximiert wechselt. Die Größe des JFrames sollte man nicht hart verdrahten, da die Bildschirmauflösung auch mal anders sein kann.
Ansonst hat regex9 ja schon auf Layoutmanager hingewiesen.
Gruß
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Du hast also das Problem, dass sich deine Komponenten im Frame nicht responsive verhalten? Verwendest du denn Layout Manager?
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Nein ich benutze kein Layout Manager https://pastebin.com/VVTi9V9q