FlowLayout

  • Themenstarter Themenstarter kaspar1
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

kaspar1

Gast
Hi,
ich muss mit Swing folgendes machen:

Die GUI besteht aus einem 5x1 GridLayout. In den Zeilen 3 und 4 liegt jeweils ein Panel-Objekt mit FlowLayout(zentriert), auf das die jeweils zwei GUI-Objekte (Label/Textfeld bzw. Button/Button) gelegt wurden.

1. Zeile: Label: Was halten Sie von Java?
2. Zeile: Label: Zulässige Antworten von 0 - 7
3. Zeile: Label: Eingabe, Textfeld
4. Zeile: Button: Abschicken, Button: Ergebnis
5. Zeile: Label: Ergebinis ist

Wie kann ich in ein GridLayout in die 3. und 4. Zeile ein FlowLayout mit je zwei GUI-Objekten einbauen?

Code:
package RMISwing;

import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;


public class RMITest extends JFrame implements ActionListener
{
    private JLabel label1,label2,label3,label4;
    private JButton button1, button2;
    private String labelText="";
    private Container contentPane;
    private JTextField jtf;
    
    public RMITest()
    {
        super("SwingButton");
        contentPane = this.getContentPane();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JPanel panel=new JPanel();
        panel.setLayout(new GridLayout(5,1));
        label1 = new JLabel("Was halten Sie von Java?", SwingConstants.CENTER);
        label2 = new JLabel("Zulässige Antworten von 0 bis 7", SwingConstants.CENTER);
        label3 = new JLabel("Eingabe",SwingConstants.CENTER);
        button1 = new JButton("Abschicken");
        button1.addActionListener(this);
        jtf = new JTextField("Nichts");       
        button2 = new JButton("Ergebnis");       
        button2.addActionListener(this);
        panel.add(label1); 
        panel.add(label2);
        panel.add(label3);
        panel.add(button1); 
        panel.add(jtf); 
        panel.add(button2);  
        contentPane.add(panel);
        //contentPane.add(BorderLayout.CENTER,panel);
                     
        pack();
        setVisible(true);
    }
    
    public void actionPerformed(ActionEvent ae)
    {
        
    }
    
    public static void main(String[] args) 
    {
        new RMITest();
    }
}

Hat jemand eine Idee, wie das funktioniert?

Danke.
kaspar1
 
Zwei neue JPanels erzeugen: panelA, panelB. Ins panelA tust du label3 und jtf, ins panelB: button1 und button2. Ins Hauptpanel "panel" kommt dann: label1, label2, panelA, panelB. Da es dann nur 4 Zeilen sind, kannst du im GridLayout die Zeilenanzahl auf 4 runtersetzen.
Btw: in deinem Code oben hast du 6 Zeilen, aber dem GridLayout hast du nur 5 angegeben, so entstehen 2 Spalten.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben