import javax.swing.*;
import java.awt.*;
import java.util.*;
public class ths extends JFrame
{
//Diese Maße werden zunächst für alle Fenster genommen.
//Nur für den Fall, dass die Fenster diese Werte nicht
//überschreiben.
private int Width = 450;
private int Height = 500;
//Bildschirmauflösung. Sie wird einmal hinterlegt. Daher
//eine static Varibale -> wird nicht mit instanziert.
private static Dimension Screen;
//Wurde die Screengröße schon gesetzt? Wichtig, um feststellen
//zu können, ob die Mittelpunktskoordinaten berechnet werden
//können.
private static boolean ScreenSet = false;
//Mittelpunktskoordinaten des Fensters.
private Point Mitte = new Point();
//Wurden die Koordinaten schon berechnet?
private boolean MitteSet = false;
//Methode um Elemente der Fenster sehr easy zu verwalten.
//Es wird die Position (x, y) und die Größe in x und y
//Richtung übermittelt. Die Einheiten dieser Daten sind
//NICHT Pixel!!! Es gibt keine Einheit! Die Daten sind
//relativ zu den anderen Elementen. Eine Breite / Länge
//von 2 bedeutet, dass dieses Element die Breite von
//zwei anderen Elementen besitzt.
public GridBagConstraints makegbc(int x, int y, int width, int height)
{
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
//Der Abstand zu allen Seiten; Einheit: Pixel
gbc.insets = new Insets(2, 2, 2, 2);
return gbc;
}
public void WindowSize(int width, int height)
{
Width = width;
Height = height;
}
public int getWidth()
{
return Width;
}
public int getHeight()
{
return Height;
}
//Screengröße schreiben
public void setScreen(Dimension Monitor)
{
Screen = Monitor;
ScreenSet = true;
}
//Die Mitte für das Fenster berechnen und schreiben.
public void makeMitte()
{
Mitte.setLocation((Screen.width / 2) - (Width / 2), (Screen.height / 2) - (Height / 2));
MitteSet = true;
}
//Die Mitte zurückgeben
public Point getMitte()
{
//Wenn die Screengröße noch nicht bekannt ist, wird dieses
//Fenster an die Position 0, 0 gelegt.
if (ScreenSet == false)
{
Mitte.setLocation(0, 0);
return Mitte.getLocation();
}
else
{
//Die Screengröße ist also schon bekannt. Wurde
//die Mitte berechnet?
if (MitteSet == true)
{
//Ja. Mitte zurück geben!
return Mitte.getLocation();
}
else
{
//Nein. Die Mitte muss erst noch berechnet werden.
makeMitte();
//Die Mitte zurück geben.
return Mitte.getLocation();
}
}
}
}