NullLayout verwenden, oder nicht?

teslar

Aktives Mitglied
hi,

in einem thread wurde mir geraten, mein layout nicht null zu setzen.

ich möchte ein GUI machen, bei dem ich alles genau setzen möchte, allerdings bieten die tutorials, die ich finde, nicht den einblick, den ich dafür benötige, ich sehe ein, das die layouts bei einigen oberflächen helfen, aber mir helfen sie nicht.

deswegen überlege ich, doch mein layout nul zu setzen.

also wenn ihr irgentwelche guten tutoriale habt oder mir sagen könnt, welches layout für eine genaue platzierung gut ist, dann anwortet mir bitte.

bitte helft mir :(
 

Fab1

Top Contributor
Sag niemals nie, aber wie EikeB schon sagte, gibt es fast nichts, was sich nicht auch mit Layoutmanagern realisieren liese, diese erfordern allerdings viel Übung und auch Nerven.

Wenn man es allerdings mal kann, dann spart man sich dadurch viel Zeit.
 
B

bygones

Gast
ich wage zu behaupten dass selbst dann GridBagLayout und seine Ableger IMMER die bessere Wahl sind als das null layout.
Je nach dem ob man lust hat alles selbst zu machen bzw sich nicht zu wundern warum es bei anderen anders aussieht, sich nicht einfach resizen laesst oder man beim scrollen probleme bekommt etc etc.

Wer sich gut genug damit auskennt und zeit/nerven hat sich um ein sinnvolles null layout zu kuemmern - klar gerne.
 
G

Gast2

Gast
Naja, wenn man wirklich alle Komponenten absolut platzieren will (warum auch immer..) dann möchte man sicherlich nicht dass die sich beim resizen verschieben. Und dann macht das null layout imho auch sinn.
 
C

Camino

Gast
Hmm, ich hab in meiner Swing-Anwendung mehrere grössere Formularpanel, bei denen sich eigentlich bei der Grösse der Komponenten nichts mehr ändern oder verschieben soll. Wenn sich an der Framegrösse was ändert und das Formular nicht mehr reinpasst, kommen eben Scrollbalken ins Spiel. Ich hab das von Anfang an mit dem GridBagLayout umgesetzt. Vielleicht auch deswegen, weil immer vom Null-Layout abgeraten wird. Vom Aufwand her finde ich das auch nicht viel schlimmer. Da hab ich jedenfalls wenigstens mal das GridBagLayout besser kennengelernt.

Ich bin mich nun aber doch öfters am fragen, ob dafür das Null-Layout nicht doch geeigneter wäre und ich das irgendwann mal umschreiben sollte. Würde vom Aussehen her jedenfalls keinen grossen Unterschied machen.
 

Marco13

Top Contributor
Warum willst du "alles ganz genau setzen" (und was heißt das?). Die Größen einzelner Components kann man mit setPreferredSize meistens ganz gut festlegen, und es gibt nur SEHR wenige Fälle, wo man die Größen aller Components Pixelgenau setzen will. (Mir würde spontan keiner einfallen...)
 

bERt0r

Top Contributor
Mir fällt kein einziger Anwendungsfall ein, bei dem es Sinn machen würde keinen Layoutmanager zu verwenden.
Scrollbalken etc... Was ist wenn dein Programm auf einem Rechner gestartet wird, wo die Schriftgrößen standardmäßig vergrößert wurden (es gibt Menschen mit Sehbehinderungen).

Ausserdem: Java: Null Layout is Evil
Problems with null layout that regular layouts don't have

Difficult to change, therefore hard (expensive) to maintain
Moving, adding, removing, etc require a lot of recalculation. Relatively little work is required with regular layouts.
Hard to get right in the first place
Exactly how do you get these coordinates?
System dependent
The components have different sizes in different systems. I once wrote a Java program that I proudly showed to an important colleague, who unfortunately was using a different system. The layout looked really, really bad - gaps, overlaps. What happened? Null layout! It was one of my early programs and the last null layout I ever wrote.
Java version dependent
A little know fact is that between Java versions the rendering of components something changes slightly. It's not big, but if you have things carefully aligned in null layouts, they may not be in the next version of Java.
User setting dependent
Another little used feature is that the user can actually change Java's default settings for fonts etc. I once decided I wanted larger fonts on the high resolution screen I had. Of course, this completely breaks any null layouts altho regular layouts will adjust properly.
Not resizeable
It's not uncommon to have text fields/areas that the use might want to make larger by dragging the lower right corner of the window. Impossible with null layouts, automatic with regular layouts.

Wenn du wirklich alles selber einstellen willst, schreib dir einen eigenen Layoutmanager. Es gibt dazu ein Tutorial in den FAQ. Null Layout ist eigentlich ein falscher Begriff, es impliziert dass das Null Layout ein Layoutmanager wäre. In wirklichkeit pfeiffst du aber auf einen wichtigen Teil bei der erstellung deiner GUI.
 
Zuletzt bearbeitet:
C

Camino

Gast
Was ist wenn dein Programm auf einem Rechner gestartet wird, wo die Schriftgrößen standardmäßig vergrößert wurden (es gibt Menschen mit Sehbehinderungen).

Oh je, an so etwas hab ich ja noch garnicht gedacht. Da bleibe ich doch wohl lieber bei meinem GridBagLayout. Muss ich aber trotzdem mal testen, wie das dann aussieht. Danke für den Hinweis.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Swing Nulllayout AWT, Swing, JavaFX & SWT 9
A Automatische anpassung im NullLayout AWT, Swing, JavaFX & SWT 10
GUI-Programmer LayoutManager NullLayout - Ist es auch in diesem Fall schlecht? AWT, Swing, JavaFX & SWT 3
alex_fairytail LayoutManager NullLayout überlappende Labels werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
H Nulllayout in ein anderes Layout AWT, Swing, JavaFX & SWT 5
V Nulllayout und wie auf Resizen reagieren? AWT, Swing, JavaFX & SWT 4
L Größe von Komponenten im Nulllayout mit der Maus verändern. AWT, Swing, JavaFX & SWT 2
G NullLayout: "Überlappung von Komponenten" AWT, Swing, JavaFX & SWT 15
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
C Swing ImageIcon erstellen, skalieren und verwenden AWT, Swing, JavaFX & SWT 3
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
M JavaFX MenuBar und Camera zusammen verwenden AWT, Swing, JavaFX & SWT 2
F Welchen Layoutmanager verwenden? AWT, Swing, JavaFX & SWT 2
X Swing OOP Vorlage verwenden und bearbeiten AWT, Swing, JavaFX & SWT 3
V JavaFX, Pane construktor von einer Klasse in der Main verwenden. AWT, Swing, JavaFX & SWT 4
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
M AWT Java-Taschenrechner, wie Stack richtig verwenden? AWT, Swing, JavaFX & SWT 14
S JVM von Oracle/Sun soll für AWT/SWING Elemente die die Optimierungen der NVidia Treiber verwenden AWT, Swing, JavaFX & SWT 3
T JTree, Knoten mehrmals verwenden AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
B Anderen Layout-Manager verwenden AWT, Swing, JavaFX & SWT 17
O Welche GUI verwenden? AWT, Swing, JavaFX & SWT 2
S JCalendar verwenden AWT, Swing, JavaFX & SWT 5
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
H Swing JPanel Inhalt wird bei verwenden von JPopup gelöscht AWT, Swing, JavaFX & SWT 5
eskimo328 Java6 Methode in Java5 verwenden (memory leak JInternalFrame) AWT, Swing, JavaFX & SWT 4
I LookAndFeel Wie kann ich das Look and Feel "Blue Vista" verwenden? AWT, Swing, JavaFX & SWT 4
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
R JOptionPane.YES_NO_CANCEL_OPTION im SaveDialog verwenden AWT, Swing, JavaFX & SWT 6
A Swingworker rückgabewert verwenden AWT, Swing, JavaFX & SWT 9
Y Swing JTabel verwenden ? AWT, Swing, JavaFX & SWT 11
Y JColorChooser verwenden AWT, Swing, JavaFX & SWT 8
D Objekt mit Button erstellen und mit anderem Button verwenden AWT, Swing, JavaFX & SWT 4
Luk10 NPE bei Verwenden von ActionListener! AWT, Swing, JavaFX & SWT 2
B Eingabe von JTextField verwenden AWT, Swing, JavaFX & SWT 10
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
S Koordinaten aus Array verwenden zum zeichnen auf JPanel?! AWT, Swing, JavaFX & SWT 3
F jFileChooser verwenden AWT, Swing, JavaFX & SWT 4
I Swing Wann invokeLater() verwenden? AWT, Swing, JavaFX & SWT 7
S AWT Eigenen Cursor im Frame verwenden... AWT, Swing, JavaFX & SWT 5
Yuen TableLayout verwenden / Classpath AWT, Swing, JavaFX & SWT 3
I Texteingabe des Benutzers in der GUI verwenden AWT, Swing, JavaFX & SWT 5
S Componente mehrmals verwenden ? AWT, Swing, JavaFX & SWT 3
H paint verwenden AWT, Swing, JavaFX & SWT 3
H JFileChooser richtig verwenden AWT, Swing, JavaFX & SWT 3
F Externes Look & Feel für Swing wie importieren/verwenden AWT, Swing, JavaFX & SWT 3
H JFileChooser im Applet verwenden AWT, Swing, JavaFX & SWT 2
B In einer JTextArea unterschiedliche Schriftarten verwenden? AWT, Swing, JavaFX & SWT 3
P Umlaute in GUI verwenden AWT, Swing, JavaFX & SWT 5
M Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 3
P Fehler beim Verwenden von swt.jar mit NetBeans AWT, Swing, JavaFX & SWT 2
M Windows file icons in Java verwenden AWT, Swing, JavaFX & SWT 2
S das selbe JLabel öffters verwenden AWT, Swing, JavaFX & SWT 6
R JProgressBar ohne Threads verwenden AWT, Swing, JavaFX & SWT 6
m@nu convertPoint richtig verwenden? AWT, Swing, JavaFX & SWT 2
A Klassenübergreifend MouseListener verwenden AWT, Swing, JavaFX & SWT 14
T JDialog als Optionen Fenster verwenden AWT, Swing, JavaFX & SWT 6
lin Welches Objekt für einen About-Dialog verwenden? AWT, Swing, JavaFX & SWT 2
G Bei JScrollpane statt Scrollbar eine Vorschau verwenden AWT, Swing, JavaFX & SWT 3
K JComboBox und JTextField zusammen verwenden AWT, Swing, JavaFX & SWT 3
D invalidate() - wie verwenden? AWT, Swing, JavaFX & SWT 2
A gif-Datei als Button verwenden AWT, Swing, JavaFX & SWT 4
G Listener mehrfach verwenden AWT, Swing, JavaFX & SWT 2
Juelin Text und Backgroundcolor im Label geht nicht AWT, Swing, JavaFX & SWT 7
richis-fragen Spaltenbreite bei drag nicht änderbar AWT, Swing, JavaFX & SWT 4
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
M JavaFX Diagonale Linie nicht ausgegeben/angezeigt AWT, Swing, JavaFX & SWT 1
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3
P thread nimmt veränderte boolean nicht AWT, Swing, JavaFX & SWT 7
P Animation läuft nicht korrekt AWT, Swing, JavaFX & SWT 8
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G JOptionPane zeigt nicht an was ich will AWT, Swing, JavaFX & SWT 2
S JavaFX WebView zeigt bestimmte Websites nicht an AWT, Swing, JavaFX & SWT 2
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
berserkerdq2 Anchorpane warum kann ich nicht Anchors setzen AWT, Swing, JavaFX & SWT 6
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Fxml findet controller nicht AWT, Swing, JavaFX & SWT 2
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12

Ähnliche Java Themen


Oben