LayoutManager für Java-Einsteiger: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
Zeile 1: Zeile 1:
 
[[Kategorie:Java-Codeschnipsel]]
 
[[Kategorie:Java-Codeschnipsel]]
  
Viele Java-Einsteiger haben am Anfang das gleiche Problem beim Aufbau einer Benutzeroberfläche in Java, z.B. mit Swing. Sie schalten den [[LayoutManager]] <code>setLayout(null);</code> aus und positionieren und dimensionieren ihre GUI-Komponenten wie [[JButton]] oder [[JLabel]] manuell durch Angabe von Koordinaten und Dimensionen.
+
Viele Java-Einsteiger haben am Anfang das gleiche Problem beim Aufbau einer Benutzeroberfläche in Java, z.B. mit [[Swing]]. Sie schalten den [[LayoutManager]] mit <code>setLayout(null);</code> aus und positionieren und dimensionieren ihre GUI-Komponenten wie [[JButton]] oder [[JLabel]] manuell durch Angabe von Koordinaten und Dimensionen mit Hilfe der setBounds()-[[Methode]].
  
Aber diese Vorgehensweise sollte sich ein Anfänger erst gar nicht zum Standard machen. Es gibt nur sehr, wirklich sehr wenige Anwendungsfälle, bei denen Komponenten auf der GUI fest verdrahtet werden.
+
Aber diese Vorgehensweise sollte sich ein Anfänger erst gar nicht zum Standard machen. Es gibt nur sehr, wirklich sehr wenige Anwendungsfälle, bei denen Komponenten auf der [[GUI]] fest verdrahtet werden.
  
 
[[LayoutManager]] inbesondere, die Kombination bzw. Verschachtelung von verschiedenen LayoutManagern ermöglicht sehr effiziente, wiederverwendbare, gut wartbare und mächtige Benutzeroberflächen. Hier im Wiki kann man einige Beispiele zur Anwendung von LayoutManagern finden.
 
[[LayoutManager]] inbesondere, die Kombination bzw. Verschachtelung von verschiedenen LayoutManagern ermöglicht sehr effiziente, wiederverwendbare, gut wartbare und mächtige Benutzeroberflächen. Hier im Wiki kann man einige Beispiele zur Anwendung von LayoutManagern finden.
Zeile 11: Zeile 11:
 
'''Los geht's!'''
 
'''Los geht's!'''
  
 +
Wir wollen unsere [[Klasse]] einfach nur "Beispiel" nennen.
 
<syntaxhighlight lang="java">
 
<syntaxhighlight lang="java">
 
public class Beispiel {
 
public class Beispiel {
 +
 +
} </syntaxhighlight>
 +
 +
Unsere Klasse soll ausführbar sein, also braucht sie eine main()-Methode zum Starten. Diese hat im Gegensatz zu C++ in Java immer die gleiche Form.
 +
<syntaxhighlight lang="java">
 +
public class Beispiel {
 +
 +
  public static void main(String[] args) {
 +
 +
  }
 +
 +
} </syntaxhighlight>
 +
 +
In der main()-Methode erzeugen wir eine [[Instanz]] der Klasse JFrame. Dem [[Konstruktor]] der Klasse JFrame übergeben wir einen [[String]], der in der Titelzeile des JFrames angezeigt werden soll.
 +
 +
Damit wir die Klasse JFrame in unserem Code benutzen können, müssen wir sie mit einer Import-Anweisung dem [[Compiler]] bekannt machen.
 +
 +
Welche Klassen von der Java-Bibliothek angeboten werden und welche Konstruktoren und Methoden diese Klasse haben, können wir aus der [[Java-API-Dokumentation|API_Dokumentation_(Java)]] entnehmen. Die API-Dokumentation ist eines der wichtigsten Werkzeuge eines Java-Entwicklers.
 +
<syntaxhighlight lang="java">
 +
import javax.swing.JFrame;
 +
 +
public class Beispiel {
 +
 +
  public static void main(String[] args) {
 +
      JFrame frame = new JFrame("Beispiel");
 +
  }
  
 
} </syntaxhighlight>
 
} </syntaxhighlight>

Version vom 3. Februar 2021, 10:55 Uhr


Viele Java-Einsteiger haben am Anfang das gleiche Problem beim Aufbau einer Benutzeroberfläche in Java, z.B. mit Swing. Sie schalten den LayoutManager mit setLayout(null); aus und positionieren und dimensionieren ihre GUI-Komponenten wie JButton oder JLabel manuell durch Angabe von Koordinaten und Dimensionen mit Hilfe der setBounds()-Methode.

Aber diese Vorgehensweise sollte sich ein Anfänger erst gar nicht zum Standard machen. Es gibt nur sehr, wirklich sehr wenige Anwendungsfälle, bei denen Komponenten auf der GUI fest verdrahtet werden.

LayoutManager inbesondere, die Kombination bzw. Verschachtelung von verschiedenen LayoutManagern ermöglicht sehr effiziente, wiederverwendbare, gut wartbare und mächtige Benutzeroberflächen. Hier im Wiki kann man einige Beispiele zur Anwendung von LayoutManagern finden.

In diesem Artikel soll es aber einmal nur darum gehen, wie man eine einzige Komponente in der Mitte einer Fenster-Komponente, wie z.B. einen JFrame ausgeben kann. Wir werden dazu den mächtigsten LayoutManager (GridBagLayout)der Java-API benutzen und ohne umständliche manuelle Positionierung und Dimensionierung viel genauer und schneller sein!

Los geht's!

Wir wollen unsere Klasse einfach nur "Beispiel" nennen.

public class Beispiel {

}

Unsere Klasse soll ausführbar sein, also braucht sie eine main()-Methode zum Starten. Diese hat im Gegensatz zu C++ in Java immer die gleiche Form.

public class Beispiel {

   public static void main(String[] args) {

   }

}

In der main()-Methode erzeugen wir eine Instanz der Klasse JFrame. Dem Konstruktor der Klasse JFrame übergeben wir einen String, der in der Titelzeile des JFrames angezeigt werden soll.

Damit wir die Klasse JFrame in unserem Code benutzen können, müssen wir sie mit einer Import-Anweisung dem Compiler bekannt machen.

Welche Klassen von der Java-Bibliothek angeboten werden und welche Konstruktoren und Methoden diese Klasse haben, können wir aus der API_Dokumentation_(Java) entnehmen. Die API-Dokumentation ist eines der wichtigsten Werkzeuge eines Java-Entwicklers.

import javax.swing.JFrame;

public class Beispiel {

   public static void main(String[] args) {
      JFrame frame = new JFrame("Beispiel");
   }

}