Welcher LayoutManager erfüllt meine Bedingung

SexyPenny90

Mitglied
Hallo,

habe hier ein Programm das so aussieht, wenn ich es öffne

attachment.php


Wenn ich unten rechts mit der Maus die Oberfläche größer mache sieht es nun so aus:

attachment.php


Wollte nun fragen, welchen LayoutManager ich nehmen muss, dass sie sie Komponenten (Textfeld, button...) sich der Fenstergröße anpassen. Bis jetzt arbeite ich offensichtlich mit layoutManager null.


Wie müsste ich meine GUI bei folgendem zusammengefassem code ändern?

Java:
public class Gui extends Frame
{
  private Button btnStart, btnStop;
  private TextField txtPlus, txtMinus;
  private Container c;
  private MyListener myL = new MyListener(this);
  public Gui()
  {
    super ("Zähler");
    this.setBounds(100,100,360,200);
    this.setLayout(null);
    this.setBackground(Color.MAGENTA);
    txtPlus = new TextField();
    txtPlus.setBounds(100,70,60,23);
    this.add(txtPlus);
    txtMinus = new TextField();
    txtMinus.setBounds(180,70,60,23);
    this.add(txtMinus);
    btnStart = new Button("Start");
    btnStart.setBounds(87,40,75,23);
    this.add(btnStart);
    btnStart.addActionListener(myL);
    btnStop = new Button("Ende");
    btnStop.setBounds(87,100,75,23);
    this.add(btnStop);
    btnStop.addActionListener(myL);
      
    
    this.addWindowListener(myL);
    this.setVisible(true);
    
  }


Hoffe ihr könnt mir helfen

Penny
 
Zuletzt bearbeitet von einem Moderator:
G

Gast2

Gast
Wollte nun fragen, welchen LayoutManager ich nehmen muss, dass sie sie Komponenten (Textfeld, button...) sich der Fenstergröße anpassen. Bis jetzt arbeite ich offensichtlich mit layoutManager null.
Jeden anderen außer das null layout ;)

How to Use Various Layout Managers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Laying Out Components Within a Container)
Mit dem GridBagLayout ließe sich das ganz gut realisieren, das ist allerdings nicht so trivial zu verstehen.
 

Fab1

Top Contributor
Auch mal sich FormLayout von JGoodies anschauen. Ich nehme immer Abeille zur WYSIWIG Konstruktion.

Kann jemand das JGoodies näher erklären? Hab es mir bereits mal runter geladen und auch durchgelesen, aber die Main wurde bei mir nicht gefunden, daraufhin hab ich es gelassen. Die ReadMe hat mich auf eine FileNotFound Page geleitet.

Es handelt sich dabei ja um eine Art GuiBuilder? Ähnlich wie der von VB? (drag and drop). Evtl. hat jem. eine kleine Anleitung.
 

L-ectron-X

Gesperrter Benutzer
Ein Beispiel mit GridBagLayout könnte so aussehen:
Java:
import java.awt.*;
import javax.swing.*;

public class Gui
{
  private JButton btnStartPlus, btnStartMinus, btnEndPlus, btnEndMinus, btnEnd;
  private JTextField txtPlus, txtMinus;
  
  public Gui(String title)
  {
    JFrame frame = new JFrame(title);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    JPanel contentPanel = new JPanel(new GridBagLayout());
    contentPanel.setPreferredSize(new Dimension(400, 200));
    contentPanel.setBackground(Color.MAGENTA);
    contentPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    
    GridBagConstraints gbc = new GridBagConstraints();
    
    //Komponenten erzeugen
    btnStartPlus = new JButton("Start+");
    btnStartMinus = new JButton("Start-");
    btnEndPlus = new JButton("Ende+");
    btnEndMinus = new JButton("Ende-");
    btnEnd = new JButton("Programmende");
    
    txtPlus = new JTextField();
    txtMinus = new JTextField();
    
    //Komponenten einstellen und hinzufügen
    gbc.fill = GridBagConstraints.BOTH;
    gbc.weightx = 1.0;
    gbc.weighty = 1.0;
    gbc.insets = new Insets(5, 5, 5, 5);
    contentPanel.add(btnStartPlus, gbc);
    
    gbc.gridx = 1;
    contentPanel.add(btnStartMinus, gbc);
    
    gbc.gridx = 0;
    gbc.gridy = 1;
    contentPanel.add(txtPlus, gbc);    

    gbc.gridx = 1;
    contentPanel.add(txtMinus, gbc);    
    
    gbc.gridx = 0;
    gbc.gridy = 2;
    contentPanel.add(btnEndPlus, gbc);
    
    gbc.gridx = 1;    
    contentPanel.add(btnEndMinus, gbc);
    
    gbc.gridx = 0;
    gbc.gridy = 3;
    gbc.gridwidth = 2;
    contentPanel.add(btnEnd, gbc);
    
    frame.add(contentPanel);
      
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    
  }
  
  public static void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        new Gui("Zähler");
      }
    });
  }
Die hier programmierte Variante ist nur eine von mehreren Möglichkeiten, die mit GridBagLayout erzeugt werden kann.
Es kommt ganz darauf an, wie genau es aussehen soll. Das GridBagLayout ist ein äußerst mächtiger und flexibler LayoutManager, wird aber von Einsteigern meist als kompliziert eingestuft.
 

bERt0r

Top Contributor
Dann komm ich gleich mal mit dem Gegenbeispiel GroupLayout :D
Java:
JPanel panel = new JPanel();
        
        JButton btnStart = new JButton("Start+");   
        textFieldLeft = new JTextField(10); 
        textFieldRight = new JTextField(10);
        JButton btnEnde_1 = new JButton("Ende-");   
        JButton btnEnde = new JButton("Ende+");     
        JButton btnProgrammende = new JButton("Programmende");
        JButton btnStart_1 = new JButton("Start-");
 
        GroupLayout gl_panel = new GroupLayout(panel);
        gl_panel.setAutoCreateGaps(true);
        gl_panel.setAutoCreateContainerGaps(true);
        gl_panel.setHorizontalGroup(
        		gl_panel.createSequentialGroup()
        			.addGap(0,0,Short.MAX_VALUE)
        			.addGroup(gl_panel.createParallelGroup(Alignment.CENTER)
        					.addGroup(gl_panel.createSequentialGroup()
        					.addGroup(gl_panel.createParallelGroup(Alignment.TRAILING)
                                .addComponent(btnStart)
                                .addComponent(textFieldLeft,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnEnde))
                            .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
                                .addComponent(btnStart_1)
                                .addComponent(textFieldRight,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE)
                                .addComponent(btnEnde_1)))
                            .addComponent(btnProgrammende)
                            )
                    .addGap(0,0,Short.MAX_VALUE)
                );
        
        gl_panel.setVerticalGroup(
            gl_panel.createParallelGroup(Alignment.LEADING)
                .addGroup(gl_panel.createSequentialGroup()
                    .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
                        .addComponent(btnStart)
                        .addComponent(btnStart_1))
                    .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
                        .addComponent(textFieldLeft,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE)
                        .addComponent(textFieldRight,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE,GroupLayout.PREFERRED_SIZE))
                    .addGroup(gl_panel.createParallelGroup(Alignment.LEADING)
                        .addComponent(btnEnde)
                        .addComponent(btnEnde_1))
                    .addComponent(btnProgrammende))
        );
        
        panel.setLayout(gl_panel);
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Swing Welcher Layoutmanager bei ScrollPane? AWT, Swing, JavaFX & SWT 4
N Welcher LayoutManager AWT, Swing, JavaFX & SWT 16
S LayoutManager Welcher LayoutManager für dieses zweispaltige Layout? AWT, Swing, JavaFX & SWT 13
J Welcher Layoutmanager? AWT, Swing, JavaFX & SWT 20
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
dereki2000 Welcher Methodenaufruf bei Hover, click,... AWT, Swing, JavaFX & SWT 5
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
G Welcher Teil der Java Standard Edition API ist für das Zeichnen von einfachen Grafiken gedacht? AWT, Swing, JavaFX & SWT 3
P LayoutManager welcher LM ist der richtige? AWT, Swing, JavaFX & SWT 3
A Welcher Layout Manager ist hier richtig? AWT, Swing, JavaFX & SWT 3
S LayoutManager Welcher Manager AWT, Swing, JavaFX & SWT 2
R KeyListener - welcher Komponente hinzufügen AWT, Swing, JavaFX & SWT 5
S Swing DnD: Wie finde ich heraus, von welcher Zelle aus im JTable der Drag gestartet wurde? AWT, Swing, JavaFX & SWT 3
M Swing Bild wird nie angezeigt, egal mit welcher Methode! AWT, Swing, JavaFX & SWT 10
C Abfragen welcher Tab aktiv ist? AWT, Swing, JavaFX & SWT 2
V Welcher Listener für JTable? AWT, Swing, JavaFX & SWT 3
A JToolBar: Welcher Button wurde gedrückt? AWT, Swing, JavaFX & SWT 5
G welcher Jtogglebutton geklickt? AWT, Swing, JavaFX & SWT 3
S Welcher Listener ? In JTable mehrere Zeilen markieren & AWT, Swing, JavaFX & SWT 2
J jTable, welcher listener für Änderung der Spaltenbreite AWT, Swing, JavaFX & SWT 2
M Welcher Listener für JLabel? AWT, Swing, JavaFX & SWT 4
M Welcher Layout Manager? AWT, Swing, JavaFX & SWT 5
M Ein Chatfenster mit Emoticons etc.mit welcher Komponente? AWT, Swing, JavaFX & SWT 10
T JTextArea, in welcher Zeile befindet sich der Cursor AWT, Swing, JavaFX & SWT 25
G LayoutManager Beliebige Anzahl von Panels für LayoutManager AWT, Swing, JavaFX & SWT 3
R Swing Welche LayoutManager sind die richtigen für mich? AWT, Swing, JavaFX & SWT 11
F Zeichnung einem JPanel im Layoutmanager zuweisen AWT, Swing, JavaFX & SWT 3
F Welchen Layoutmanager verwenden? AWT, Swing, JavaFX & SWT 2
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
Birke Swing Neue Swing LayoutManager: TOnion Projekt AWT, Swing, JavaFX & SWT 10
B Swing JLabel und LayoutManager AWT, Swing, JavaFX & SWT 20
F Swing Layoutmanager für Mittplatzierung ? AWT, Swing, JavaFX & SWT 6
B SWT Dynamische GUI (Layoutmanager?) AWT, Swing, JavaFX & SWT 2
J Welche(n) LayoutManager für große Gui? AWT, Swing, JavaFX & SWT 6
D Layoutmanager in Java Swing vs. Java AWT AWT, Swing, JavaFX & SWT 3
P Layoutmanager-Richtlinie ? AWT, Swing, JavaFX & SWT 8
J 2 Bereiche im Frame komplett nutzen - Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 3
TheWhiteShadow Swing suche passenden LayoutManager AWT, Swing, JavaFX & SWT 8
C SWT LayoutManager AWT, Swing, JavaFX & SWT 2
L LayoutManager macht nichts AWT, Swing, JavaFX & SWT 19
R Layoutmanager AWT, Swing, JavaFX & SWT 4
M Fenster aufteilen, aber mit welchem LayoutManager? AWT, Swing, JavaFX & SWT 10
G LayoutManager LayoutManager gesucht AWT, Swing, JavaFX & SWT 2
R Swing Variable Panelbreite ohne Layoutmanager AWT, Swing, JavaFX & SWT 6
R LayoutManager Problem mit setLayout(LayoutManager) AWT, Swing, JavaFX & SWT 9
F Anfängerfrage: Swing und LayoutManager AWT, Swing, JavaFX & SWT 4
V LayoutManager Eigener LayoutManager funktioniert nicht. AWT, Swing, JavaFX & SWT 5
N LayoutManager suche LayoutManager für Tabellenstruktur AWT, Swing, JavaFX & SWT 2
D LayoutManager JPanels ohne LayoutManager platzieren AWT, Swing, JavaFX & SWT 6
Ollek JTextField Verhalten mit LayoutManager AWT, Swing, JavaFX & SWT 8
B LayoutManager mischen keine gute Idee? AWT, Swing, JavaFX & SWT 9
hdi SWT Suche passenden LayoutManager AWT, Swing, JavaFX & SWT 5
C passender layoutmanager gesucht AWT, Swing, JavaFX & SWT 2
I Swing Positionieren von Panels mit layoutManager AWT, Swing, JavaFX & SWT 6
E Swing Suche LayoutManager AWT, Swing, JavaFX & SWT 5
E Layoutmanager mit fester Breite gesucht AWT, Swing, JavaFX & SWT 9
R Layoutmanager AWT, Swing, JavaFX & SWT 13
K Swing JInternalFrame und LayoutManager AWT, Swing, JavaFX & SWT 6
W LayoutManager Hell AWT, Swing, JavaFX & SWT 2
P JPanel: LayoutManager und trotzdem absolut positionieren? AWT, Swing, JavaFX & SWT 3
J eigener Layoutmanager? AWT, Swing, JavaFX & SWT 6
M JLabel mit Layoutmanager AWT, Swing, JavaFX & SWT 2
G Layoutmanager mit festem Gitter AWT, Swing, JavaFX & SWT 6
R getInsets ohne Layoutmanager AWT, Swing, JavaFX & SWT 7
R LayoutManager ähnlich BorderLayout, mit einer Ausnahme AWT, Swing, JavaFX & SWT 2
T Layoutmanager der vorhanden Platz beruecksichtigt? AWT, Swing, JavaFX & SWT 5
J LayoutManager der Elemente untereinander anordnet. AWT, Swing, JavaFX & SWT 11
F Der richtige Layoutmanager AWT, Swing, JavaFX & SWT 6
G LayoutManager und Abstand AWT, Swing, JavaFX & SWT 6
A LayoutManager-Wünsche AWT, Swing, JavaFX & SWT 16
T % von Komponenten unter Layoutmanager AWT, Swing, JavaFX & SWT 2
M Layoutmanager und Komponente AWT, Swing, JavaFX & SWT 2
F LayoutManager und Component.setVisible(boolean) AWT, Swing, JavaFX & SWT 2
G Fenster mit LayoutManager AWT, Swing, JavaFX & SWT 3
C Verschachtelung von JPanels mit verschiedenen LayoutManager AWT, Swing, JavaFX & SWT 4
T JInternalFrame Konflikt mit LayoutManager AWT, Swing, JavaFX & SWT 5
S JTextField ohne LayoutManager positionieren AWT, Swing, JavaFX & SWT 3
F PanelBounds an TextPaneBounds anpassen LayoutManager: Null AWT, Swing, JavaFX & SWT 2
B Welchen LayoutManager? AWT, Swing, JavaFX & SWT 17
S Wie funktioniert der LayoutManager? AWT, Swing, JavaFX & SWT 9
P Zeichnen + LayoutManager AWT, Swing, JavaFX & SWT 7
B Layoutmanager Tutorial AWT, Swing, JavaFX & SWT 15
M LayoutManager Informationen AWT, Swing, JavaFX & SWT 4
L LayoutManager ähnlich wie FlowLayout AWT, Swing, JavaFX & SWT 5
S Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 6
D LayoutManager und JPanel AWT, Swing, JavaFX & SWT 9
L Probleme mit Scrollbar und LayoutManager AWT, Swing, JavaFX & SWT 3
G Neuer LayoutManager AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben