Fenster mittig auf dem Bildschirm positionieren (Java): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(+Leerzeichen nach API)
Zeile 2: Zeile 2:
 
Dazu zunächst folgender Code:
 
Dazu zunächst folgender Code:
  
 +
=Mit Java bis Version 1.4=
 +
 +
In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden:
 
<code=java>public class MyFrame extends JFrame {
 
<code=java>public class MyFrame extends JFrame {
  
Zeile 8: Zeile 11:
 
       super(title);
 
       super(title);
  
       setSize(600, 400); //Dimensionen des Fensters festlegen
+
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 +
 
 +
      int windowWidth = 800; //Breite des Programmfensters in Pixel
 +
 
 +
      int windowHeight = 600; //Höhe des Programmfensters in Pixel
  
       setLocationRelativeTo(null); //Fenster zentrieren
+
       Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //Bildschirmdimensionen in Pixeln holen
  
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
+
       setBounds((screenSize.width-windowWidth)/2, (screenSize.height-windowHeight)/2, windowWidth, windowHeight);
  
 
   }
 
   }
Zeile 24: Zeile 31:
 
   }
 
   }
 
}</code=java>
 
}</code=java>
 
[http://java.sun.com/javase/6/docs/api/java/awt/Window.html#setLocationRelativeTo(java.awt.Component) setLocationRelativeTo(java.awt.Component)] wurde zum ersten Mal in Java 1.4 in {{API|java/awt/Window|java.awt.Window}} implementiert und kann somit in bzw. für Klassen verwendet werden, die von {{API|java/awt/Window|Window}} erben.
 
Wichtig bei ihrer Verwendung ist die Reihenfolge der Anweisungen. Der Aufruf der <i>setLocationRelativeTo()</i>-Methode darf erst nach der Dimensionierung z.B. mit <i>setSize()</i> oder <i>pack()</i> des Programmfensters erfolgen, da sie ihre Funktion sonst nicht erfüllen kann.
 
Der <i>setLocationRelativeTo()</i>-Methode kann statt <i>null</i> eine Referenz auf eine Component übergeben werden. Dann wird sich das Fenster relativ zu dieser Component positionieren.
 
  
  
 +
=Mit Java ab Version 1.4=
  
In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden:
 
 
<code=java>public class MyFrame extends JFrame {
 
<code=java>public class MyFrame extends JFrame {
  
Zeile 38: Zeile 41:
 
       super(title);
 
       super(title);
  
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
+
       setSize(600, 400); //Dimensionen des Fensters festlegen
  
       int windowWidth = 800; //Breite des Programmfensters in Pixel
+
       setLocationRelativeTo(null); //Fenster zentrieren
  
       int windowHeight = 600; //Höhe des Programmfensters in Pixel
+
       setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
 
 
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //Bildschirmdimensionen in Pixeln holen
 
 
 
      setBounds((screenSize.width-windowWidth)/2, (screenSize.height-windowHeight)/2, windowWidth, windowHeight);
 
  
 
   }
 
   }
Zeile 58: Zeile 57:
 
   }
 
   }
 
}</code=java>
 
}</code=java>
 +
 +
[http://java.sun.com/javase/6/docs/api/java/awt/Window.html#setLocationRelativeTo(java.awt.Component) setLocationRelativeTo(java.awt.Component)] wurde zum ersten Mal in Java 1.4 in {{API|java/awt/Window|java.awt.Window}} implementiert und kann somit in bzw. für Klassen verwendet werden, die von {{API|java/awt/Window|Window}} erben.
 +
Wichtig bei ihrer Verwendung ist die Reihenfolge der Anweisungen. Der Aufruf der <i>setLocationRelativeTo()</i>-Methode darf erst nach der Dimensionierung z.B. mit <i>setSize()</i> oder <i>pack()</i> des Programmfensters erfolgen, da sie ihre Funktion sonst nicht erfüllen kann.
 +
Der <i>setLocationRelativeTo()</i>-Methode kann statt <i>null</i> eine Referenz auf eine Component übergeben werden. Dann wird sich das Fenster relativ zu dieser Component positionieren.
 +
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]
 
[[Kategorie:Swing]]
 
[[Kategorie:Swing]]

Version vom 4. April 2010, 08:57 Uhr

Am Beispiel der Klasse MyFrame, die von Vorlage:API (Swing) erbt, soll demonstriert werden, wie ein Programmfenster auf einfache Weise auf dem Bildschirm zentriert werden kann.
Dazu zunächst folgender Code:

Mit Java bis Version 1.4

In Java-Versionen vor Java 1.4 kann ein Programmfenster folgendermaßen auf dem Bildschirm zentriert werden: <code=java>public class MyFrame extends JFrame {

  public MyFrame(String title) {
     super(title);
     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
     int windowWidth = 800; //Breite des Programmfensters in Pixel
     int windowHeight = 600; //Höhe des Programmfensters in Pixel
     Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //Bildschirmdimensionen in Pixeln holen
     setBounds((screenSize.width-windowWidth)/2, (screenSize.height-windowHeight)/2, windowWidth, windowHeight);
  }


  public static void main(String[] args) {
     new MyFrame("Title").setVisible(true);
  }

}</code=java>


Mit Java ab Version 1.4

<code=java>public class MyFrame extends JFrame {

  public MyFrame(String title) {
     super(title);
     setSize(600, 400); //Dimensionen des Fensters festlegen
     setLocationRelativeTo(null); //Fenster zentrieren
     setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  }


  public static void main(String[] args) {
     new MyFrame("Title").setVisible(true);
  }

}</code=java>

setLocationRelativeTo(java.awt.Component) wurde zum ersten Mal in Java 1.4 in Vorlage:API implementiert und kann somit in bzw. für Klassen verwendet werden, die von Vorlage:API erben. Wichtig bei ihrer Verwendung ist die Reihenfolge der Anweisungen. Der Aufruf der setLocationRelativeTo()-Methode darf erst nach der Dimensionierung z.B. mit setSize() oder pack() des Programmfensters erfolgen, da sie ihre Funktion sonst nicht erfüllen kann. Der setLocationRelativeTo()-Methode kann statt null eine Referenz auf eine Component übergeben werden. Dann wird sich das Fenster relativ zu dieser Component positionieren.