LayoutManager Wie und welches Layout nutze ich am Besten?

Soloeco

Aktives Mitglied
Hey Leute,
ich bin noch relativ neu in der Java-Sprache und probiere ein paar Kleinigkeiten einfach einmal aus.
- Ich habe jetzt die Frage wie ich (in meinem folgenden Code) am Besten ein Layout (welches Layout empfiehlt sich?) einfügen kann, damit ich die Komponenten nicht immer per Koordinaten zuweisen muss aber dennoch ich möglichst frei entscheiden kann was wohin kommt?
- Ich habe verschiedene Möglichkeiten gesehen ein Frame zu erzeugen, was haltet ihr von dieser hier und habt ihr Verbesserungsvorschläge?
Wie gesagt, ich bin Anfänger und freue mich über Tipps mit Erklärung dann dazu bitte :)
Java:
import javax.swing.*;
import java.net.URL;
import java.awt.*;

public class soloeco extends JFrame {
 
    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
     
        new soloeco();
    }
 
    public soloeco() {
     
        super("Soloeco");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setLayout(null);
     
        final JLabel background = new JLabel("");
        background.setBounds(0,0,1920,1080);
        URL background_url = this.getClass().getResource("soloeco.jpg");
        background.setIcon(new ImageIcon(background_url));
        background.setVisible(true);
        add(background);
        setVisible(true); //frame
     
        final JButton evolution = new JButton("Evolution");
        evolution.setSize(200,40);
        evolution.setVisible(true);
        evolution.setLocation(900,400);
     
        add(evolution);
    }

}
Mit freundlichen Grüßen
Soloeco
 
Zuletzt bearbeitet von einem Moderator:

strußi

Top Contributor
Moin,
ganz schnell
1. Klassennamen schreibt man Groß
2. nicht von JFrame erben, wenn du ihn nicht erweiterst, lieber ein Objekt erstellen JFrame frame =new JFrame();
3. ich arbeite gerne noch mit einem JPanel, das ich auf den Frame adde, und nicht mit einem JLabel. Habe ich den fall das ich ein JLabel brauche kommt erst der Frame, dann das Panel und auf das Panel das Label.

Oracle anleitung für Layouts

Ich mag das GridBagLayout am liebsten, ist aber auch eines der Aufwändigeren
grüße
 

Soloeco

Aktives Mitglied
Weshalb nicht von JFrame erben? Nur für mein Verständnis.
Und das mit dem JPanel stimmt, ist eine gute Idee, danke dir für die Antworten ;)
 

javampir

Bekanntes Mitglied
man kann nnicht grundsätzlich sagen dass man von jframe erbt, denn das widerspricht dem konzept der objektorientierung. was bringt es dir denn wenn du ein jframe "bist"? von etwas erben heißt es um funktionalität erweitern. das willst du aber nicht. du willst es verwenden.
man kann aus deinem code leider nicht sehen, was du vorhast, deswegen ist es schwer eine aussage über das zu verwendende layout zu machen.
mit dem vorschalg von strußi und dem jpanel geht das wie folgt:
also würde das heißen du hast deine klasse
Java:
public class Soloeco {
    private JFrame f = new JFrame("Frame Title");[/COLOR]
    private JPanel panel = new JPanel();

[COLOR=#000000]    public Soloeco() {
        // panel hat standardmäßig ein FlowLayout
        // mit setLayout kannst du jetzt ein beliebiges layout setzen. du brauchst dann kein setBounds mehr
        panel.setLayout(new BorderLayout());[/COLOR]
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(800, 600);
        f.setVisible(true);
[COLOR=#000000]    }
}

außerdem noch zum code: einzelne components werden nicht visible gesetzt (bei dir der background).
und du solltest es wegen namenszweideutigkeiten deine imports mit * zu definieren. importiere einfach die klassen di du brauchst konkret und alles ist gut. wenn du eine anständige IDE verwendest, sollte das sowieso schon von haus aus so gemacht werden.

zur anwendung von verschiedenen awt layoutmanagern folge dem link von strußi, der ist gut.

javampir
 

Soloeco

Aktives Mitglied
Also ich möchte gerne eine Art kleines Wiki daraus machen (ich weiß ich bin weit entfernt, probiere auch nur nebenbei herum).
Da dachte ich mir dass ich ein Frame brauche wie ich es in meinem Code (oben) bereits hatte. Ich verstehe auch was der Code von dir machen soll javampir jedoch kam mir eine neue Frage auf: Was ist die beste Möglichkeit ein ganz simples Frame ohne alles zu erzeugen was jedoch gut erweiterbar ist? Zum beispiel wie ich es hatte in meinem Code oder doch besser eine eigene Methode die dann im Constructor ausgeführt wird?
Ich bin gerade etwas verwirrt o_O
 

Soloeco

Aktives Mitglied
Da habe ich mich falsch ausgedrückt, tut mir leid. Ich meinte damit eigentlich dass man ganz simpel weitere components einfügen kann wie JPanel etc.
 

strußi

Top Contributor
moin
@javampir, ich habe das erben von JFrame nicht komplett ausgeschlossen, sondern nur wenn man dessen Funktionalität nicht erweitern möchte.

@Soloeco, der Vorteil, wenn du mit Panels arbeitest, ist dieser, das du ein Hauptpanel mit einem bestimmten Layout z.B. Borderlayout anlegen kannst und in die einzelnen Bereiche nochmal ein Panel mit einem komplett anderen Layout für die in diesem Bereich geeignete Anordnung adden kannst
Aufbau wäre dann ähnlich dem Frameset in HTML
JFrame <- MainPanel <-Bereichspanel 1
<-Bereichspanel 2 ...
 

MWin123

Bekanntes Mitglied
Kurz gesagt: JavaFX soll bzw. wird Swing ablösen.

Falls du mehr wissen willst, findest du mit Google einen Haufen Gegenüberstellungen und Vergleiche.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
G LayoutManager Layout welches von Links nach rechts anordnet mit TOP Alignment! AWT, Swing, JavaFX & SWT 5
E Layout, aber welches? AWT, Swing, JavaFX & SWT 8
L Welches Layout? AWT, Swing, JavaFX & SWT 6
GilbertGrape Wie Panel anordnen? Welches Layout? AWT, Swing, JavaFX & SWT 7
J welches Layout? AWT, Swing, JavaFX & SWT 8
D Welches Layout für prozentuale Aufteilung: 20% - 60 % - 20% AWT, Swing, JavaFX & SWT 3
G welches Layout sollte ich benutzen? AWT, Swing, JavaFX & SWT 2
D Welches Layout? AWT, Swing, JavaFX & SWT 2
B 3 Zeilen die unterschiedlich gross sind -->Welches Layout AWT, Swing, JavaFX & SWT 3
R Welches Layout? AWT, Swing, JavaFX & SWT 4
W welches Layout? AWT, Swing, JavaFX & SWT 3
O Welches Layout ? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
K Fenster welches den Sieger anzeigt AWT, Swing, JavaFX & SWT 5
ImperatorMing JavaFX Übersicht - Welches Element kann welches Erreignis AWT, Swing, JavaFX & SWT 3
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
M Java FX Welches Accordion Tilded Pane geöffnet? AWT, Swing, JavaFX & SWT 4
M Welches Pattern bei GUI Anwendungen? AWT, Swing, JavaFX & SWT 2
S Größe von Panel verändern welches auf anderem Panel sitzt AWT, Swing, JavaFX & SWT 10
F Welches GUI Plugin bzw. IDE für schnelle und gute Lösungen AWT, Swing, JavaFX & SWT 7
K 2D-Grafik BufferedImage eingelesen, welches Modell?! AWT, Swing, JavaFX & SWT 2
C [GUI] Welches GUI? AWT, Swing, JavaFX & SWT 28
F Timer welches JPanel aktualisiert AWT, Swing, JavaFX & SWT 6
C GUI Entwicklung - welches Pattern? AWT, Swing, JavaFX & SWT 16
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
S Welches Event beim ändern einer Zelle in einer JTable AWT, Swing, JavaFX & SWT 4
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
A welches programm? AWT, Swing, JavaFX & SWT 17
D Wie viele Pixel welches Icon? AWT, Swing, JavaFX & SWT 4
K welches package muss ich angeben um GUIs zu erstellen? AWT, Swing, JavaFX & SWT 5
D JPanel, welches sich per Button vergrößert(in GridBagLayout) AWT, Swing, JavaFX & SWT 2
A Herausfinden welches Document gesetzt ist AWT, Swing, JavaFX & SWT 4
G Welches L&F gesetzt? AWT, Swing, JavaFX & SWT 12
T mousemoved abfrage - aber welches event wenn maus weg? AWT, Swing, JavaFX & SWT 2
lin Welches Objekt für einen About-Dialog verwenden? AWT, Swing, JavaFX & SWT 2
V Welches Event wird von einer JTabbedPane gefeuert? AWT, Swing, JavaFX & SWT 2
C Welches Toolkit für GUI AWT, Swing, JavaFX & SWT 2
S Layout - Problem AWT, Swing, JavaFX & SWT 1
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
R Layered Layout AWT, Swing, JavaFX & SWT 1
E showAndWait is not allowed during animation or layout processing Memory FX AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
I JavaFX - festes Layout AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing Card-Layout, Fokus AWT, Swing, JavaFX & SWT 2
kilopack15 Interface mit Layout verknüpfen AWT, Swing, JavaFX & SWT 2
Y Layout/Ausrichtungsprobleme AWT, Swing, JavaFX & SWT 4
T JavaFX Custom Layout AWT, Swing, JavaFX & SWT 5
A GUI Layout AWT, Swing, JavaFX & SWT 11
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout reagiert nicht auf Constraints AWT, Swing, JavaFX & SWT 4
IsSchoGuat LayoutManager Layout-Containergrösse AWT, Swing, JavaFX & SWT 4
F GridBag Layout AWT, Swing, JavaFX & SWT 1
Z Absolutes Layout / Kontrolle über Anordnung AWT, Swing, JavaFX & SWT 3
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
J ComboBoxModel addElement verändert Layout AWT, Swing, JavaFX & SWT 8
E Probelm mit Layout AWT, Swing, JavaFX & SWT 1
P Tipps für GUI-Layout AWT, Swing, JavaFX & SWT 2
M Passender Layout-Manager AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout zur Laufzeit ändern AWT, Swing, JavaFX & SWT 8
N Swing Zweifarbiges Layout für den Filechooser AWT, Swing, JavaFX & SWT 12
B LayoutManager Card Layout AWT, Swing, JavaFX & SWT 2
E Angehängtes Layout, aber wie? AWT, Swing, JavaFX & SWT 12
1 Eigenes Layout schreiben AWT, Swing, JavaFX & SWT 4
B SWT layout invalidieren in SWT? AWT, Swing, JavaFX & SWT 4
R Welchen Layout Manager/ Wie strukturieren? AWT, Swing, JavaFX & SWT 14
J Layout: oben 20% unten 80% AWT, Swing, JavaFX & SWT 12
T Layout für Listendarstellung AWT, Swing, JavaFX & SWT 3
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
C LayoutManager Passendes Layout gesucht AWT, Swing, JavaFX & SWT 2
M Layout funktioniert nicht AWT, Swing, JavaFX & SWT 3
dzim Layout von Panes in JFX2 AWT, Swing, JavaFX & SWT 17
H Layout Idee AWT, Swing, JavaFX & SWT 8
M Swing Dynamisches Layout AWT, Swing, JavaFX & SWT 10
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
J LayoutManager Komponentenaustausch zerschießt Layout AWT, Swing, JavaFX & SWT 4
F Layout-Problem AWT, Swing, JavaFX & SWT 2
K Gui Layout Frage AWT, Swing, JavaFX & SWT 5
B Anderen Layout-Manager verwenden AWT, Swing, JavaFX & SWT 17

Ähnliche Java Themen

Neue Themen


Oben