Interface Das Null-Layout

Massta

Mitglied
Hallo Community,
ich habe da mal ne Frage. In der Schule habe ich mit dem Stifte und Mäuse Paket programmieren gelernt und bin jetzt dabei, mir das "richtige" Java zu erschließen, dabei stieß ich auf Layouts. Bei dem Paket, was wir in der Schule hatten lief alles über genaue Koordinaten, d.h. Fenster initialisieren, Komponenten laden, etc.: Für alles musste man genaue Positionswerte angeben. In letzter Zeit habe ich immer mehr darüber gelesen, dass das Null-Layout nicht gut sei und nicht benutzt werden sollte. Was ist die allgemeine Meinung dazu? Für mich ist es durch die Gewöhnung an das SuM-Paket einfacher alles mit Koordinaten zu regeln..
 
G

Gast2

Gast
Ja, das Null-Layout bringt tatsächlich einige Nachteile mit sich, daher fährt man in der Regel mit einem richtigen Layoutmanager besser.
Die Komponenten passen sich bspw. nicht an wenn das Fenster größer oder kleiner wird. Auf anderen Plattformen können Schriftgrößen oder einzelne Komponenten leicht variieren was dazu führen kann das plötzlich Texte abgeschnitten werden, etc.

Näheres dazu hier:
Java: Null Layout is Evil
 

Bitstubbi

Mitglied
ist zwar nicht die optimale Lösung, aber du kannst zb:

Java:
//Der folgende Quelltext habe ich nicht ausprobiert und ich weiß auch nicht, wie das aussieht ^^


public class NullGUI extends JFrame{


	private static final long serialVersionUID = 1L;
        private JFrame Window;
        private JPanel MainPanel;


public NullGUI(){

                Window=new JFrame();
		Window.setSize(600,200);
		Window.setVisible(true);
		Window.setLayout(null);
		Window.setTitle("Sabbel");
		Window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	

                MainPanel=new JPanel();
		MainPanel.setLayout(null);
		MainPanel.setBackground(new Color(255,255,255));
		MainPanel.setBounds(0,0,600,200);

		
		Window.add(MainPanel);


//Jetzt kannst du deine Sachen platzieren, z.B:

		
		Text = new JLabel("Text");
		Text.setBounds(100,100,300,60);
		Text.setFont(new Font("Arial",Font.BOLD,30));
                MainPanel.add(Text);
               

}


}


Also wie gesagt bin kein Freund von NULL-Layout.
 

Fab1

Top Contributor
IMHO reicht für den Anfang, wenn du Border-, Flow- und Gridlayout beherrscht. Ich denke damit kann man schon so gut wie alles machen, wenn man die Layoutmanager verschachtelt. Diese drei LM sind auch einfach zu verstehen.

Wichtig ist, dass du dir im klaren bist, wie das GUI ausschauen soll. Am besten du zeichnest es auf ein Blatt Papier. Anschließend versuchst entsprechend die LM so zu verschachteln, dass du auf dein Ergebnis kommst. Mir erspart es meist viel Zeit, wenn ich mir erstmal auf Papier überlege wie es denn ausschauen soll.
 

Michael...

Top Contributor
Aber was ist, wenn ich ein GUI genau so haben will wie ich das im Kopf habe? Geht das mit Layouts so ohne weiteres?
Mit den Standard LayoutManagern und der Verschachtelung von JPanels kann man schon sehr viele Gestaltungsmöglichkeiten.
Darüber hinaus hat man auch die Möglichkeit sich seinen eigenen LayoutManager zu schreiben.

In m.M. sehr wenigen, speziellen Fällen kann es auch Sinn machen ein NullLayout zu verwenden. Ich würde es aber nach Möglichkeit vermeiden.
 

pl4gu33

Top Contributor
In m.M. sehr wenigen, speziellen Fällen kann es auch Sinn machen ein NullLayout zu verwenden. Ich würde es aber nach Möglichkeit vermeiden.

Um mal ein Bsp. dafür zu nennen.... wäre sowas z.b. eine Oberfläche, bei der der User Komponenten je nach belieben verschieben kann und diese dann auf den jeweiligen Positionen gespeichert werden? Oder gibt es da eine andere Möglichkeit für? (nur mal so als Frage eingeschmissen, da wir gerade bei dem Thema sind :D)
 

Massta

Mitglied
Danke an alle Tipps, ich werde mir das mit den Layouts nochmal genauer anschauen wenn ich Zeit hab.

In der Schule machen wir jetzt nach den Sommerferien einen Projektkurs, in dem ich mit ein paar anderen Leuten eine Android App schreibe. Ein Teil dieser App wird eine Fläche sein, auf der einzelne Objekte in Form kleiner beschrifteter Kästchen liegen, welche per Drag and Drop beliebig bewegt werden können. Eine passende Implementierung mit dem Null-Layout habe ich schon, die ist allerdings nicht sehr schön. Gibt es da irgendwas hilfreiches? Ich habe im Api was von dem Paket java.awt.dnd. gelesen aber nicht wirklich durchgeblickt...
 

Michael...

Top Contributor
Hab mich nicht wirklich mit Android auseinander gesetzt, aber m.W. werden hier Layouts auf Basis xml Dateien definiert. Vermute daher, dass es sowas ein Null Layout unter Android nicht gibt.
Auch bietet das Android SDK nicht alle Umfänge des Java SDK. Eine Entwicklung einer Android App ist also nicht zu 100% vergleichbar mit einer Java App - vor allem was die GUI angeht.
 

Marco13

Top Contributor
Auch bei mir ist es in bezug auf Android Halbwissen, aber: Man kann sein Layout dort auch programmatisch (ohne XML) definieren. Es wird aber aus verschiedenen Gründen davon abgeraten (Portrait vs. Landscape, unterschiedliche Auflösungen, Schrift- und Icon-Größen etc).

Im angedeuteten Fall hängt es wohl davon ab, ob diese "beschrifteten Kästchen" wirklich GUI-Components sein sollen, oder irgendwas, was "per Hand" gemalt wird (ich könnte mir vorstellen, dass letzteres einfacher ist, falls man nicht irgendwelche GUI-Funktionalität IN diesen Kästchen braucht)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Eine doofe Frage zum null-Layout-Manager Java Basics - Anfänger-Themen 6
A Problem mit BorderLayout und null-Layout Java Basics - Anfänger-Themen 5
P Null Layout Java Basics - Anfänger-Themen 17
E Scrollbar mit NULL- Layout? Java Basics - Anfänger-Themen 4
B Null-Layout oder GridLayout usw. Java Basics - Anfänger-Themen 5
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
P Buffer und null Java Basics - Anfänger-Themen 3
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
N null in String replacen Java Basics - Anfänger-Themen 16
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
K Bufread.readLine())!= null wie beenden? Java Basics - Anfänger-Themen 4
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
T ComboBox getValue() zeigt null Java Basics - Anfänger-Themen 7
J null exception Array Java Basics - Anfänger-Themen 5
tobikoch String x= null Bedeutung Java Basics - Anfänger-Themen 9
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
J Int wird als Null ausgegeben Java Basics - Anfänger-Themen 8
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
L Warum ist Variable null? Java Basics - Anfänger-Themen 3
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
O JavaArray Null Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
D Best Practice Konvention - Klassenmembers auf null setzen? Java Basics - Anfänger-Themen 2
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
Orkanson Null Pointer Expception Java Basics - Anfänger-Themen 3
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
I Polymorphie Null Objekt Java Basics - Anfänger-Themen 3
O Datentypen Integer mit führender Null Java Basics - Anfänger-Themen 13
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
J Einfache Frage zu "null" Java Basics - Anfänger-Themen 2
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
C Null Pointer Exception Java Basics - Anfänger-Themen 10
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
G Null Pointer Exception Java Basics - Anfänger-Themen 4
R Gleitkommazahlen ohne führende Null Java Basics - Anfänger-Themen 10
M array = null Java Basics - Anfänger-Themen 2
F String equals NULL Problem Java Basics - Anfänger-Themen 4
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
R Property Value als null setzen Java Basics - Anfänger-Themen 1
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
T Compiler-Fehler Null type safety (type annotations) Java Basics - Anfänger-Themen 5
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
J Fehlerhafte Ausgabe "null" Java Basics - Anfänger-Themen 2
G Threads zum Thema Threads??? null Ahnung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
D OOP Warum bekomme ich eine Null-Pointer Exception!!? :( Java Basics - Anfänger-Themen 4
D Null Ausgabe obwohl wert zugewiesen Java Basics - Anfänger-Themen 5
J Alias null Java Basics - Anfänger-Themen 4
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
A null-Überprüfung Java Basics - Anfänger-Themen 24
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
A Null Pointer Exception in Liste Java Basics - Anfänger-Themen 11
T Null Java Basics - Anfänger-Themen 3
X Array trotz Befüllung "null" Java Basics - Anfänger-Themen 11
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
L Null Pointer Exception bei setText Java Basics - Anfänger-Themen 9
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
J Verschränkte Rekursion und null Ahnung... Java Basics - Anfänger-Themen 0
X Vererbung Setzen auf Null bei Subklassen Java Basics - Anfänger-Themen 2
S Rückgabewert null in Methode mit Thread Java Basics - Anfänger-Themen 2
C MIME-Type null Java Basics - Anfänger-Themen 4
T Null Pointer Exception Java Basics - Anfänger-Themen 4
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
G Null Pointer Exeption Java Basics - Anfänger-Themen 8
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
N 'null' aus String löschen Java Basics - Anfänger-Themen 7
F Irgendein "Null" Fehler.... Java Basics - Anfänger-Themen 5
P Map liefert bei put null als Ergebnis Java Basics - Anfänger-Themen 6
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
Dogge NumberFormatException null Java Basics - Anfänger-Themen 5
C 2 Objekte, 1 immer Null? Java Basics - Anfänger-Themen 8
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
J db4o-attrbibutauslesen null Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben