Freiraum in der GUI - Wieso?

  • Themenstarter Themenstarter Nektus
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
N

Nektus

Gast
Hey programmiere gerade ne kleine GUI und hab da ein Problem!

CODE :

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CClientLogin extends JFrame
{
	private static final long serialVersionUID = 1L;
	private JTextField tfBenutzername = new JTextField(15);
	private JTextField tfServeradresse = new JTextField(15);
	private JSpinner sServerport = new JSpinner();
	private JButton btnAnmelden = new JButton("Anmelden");
	private JButton btnAbbrechen = new JButton("Abbrechen");

	public CClientLogin()
	{
		super("Anmeldung");
		JPanel panel1 = new JPanel();
		JLabel lblBenutzername = new JLabel("Benutzername: ");
		JLabel lblServeradresse = new JLabel("Serveradresse: ");
		JLabel lblServerport = new JLabel("Serverport: ");
		panel1.setLayout(new GridLayout(3, 2));
		panel1.setBorder(BorderFactory.createTitledBorder("Eingabedaten"));
		panel1.add(lblBenutzername);
		panel1.add(tfBenutzername);
		panel1.add(lblServeradresse);
		panel1.add(tfServeradresse);
		panel1.add(lblServerport);
		panel1.add(sServerport);
		JPanel panel2 = new JPanel();
		panel2.setLayout(new FlowLayout());
		panel2.add(btnAnmelden);
		panel2.add(btnAbbrechen);
		Container c = getContentPane();
		c.setSize(200, 200);
		c.add(panel1);
		c.add(panel2);
		c.setLayout(new GridLayout(3, 1));

		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		btnAnmelden.addActionListener(new ButtonAnmelden());
		btnAbbrechen.addActionListener(new ActionListener()
		{
			public void actionPerformed(final ActionEvent e)
			{
				System.exit(0);
			}
		});
	}

	private class ButtonAnmelden implements ActionListener
	{
		public void actionPerformed(final ActionEvent e)
		{
		}
	}

	public static void main(String[] args)
	{
		CClientLogin s = new CClientLogin();

		s.pack();
		s.setVisible(true);
	}
}

Bild dazu :
bild1d98ed.png


wie ihr sehn könnt ist unter den Buttons jede Menge freier Raum den ich gerne weghätte. Woran liegt das?

P.S. Weiß das der Code noch ziemlich wirr ist wird aber noch geändert!

LG Chilla
 
Und wo soll der Platz hin? :wink:

In einem GridLayout sind alle Components gleich groß. Wenn du eine riesen-Component (das Eingabe-Panel) und eine kleine (das Button-Panel) packt, gibt die Größere den Platz vor. Vielleicht tut's schon
Code:
      Container c = getContentPane();
      //c.setSize(200, 200); // Bringt eh nix
      c.setLayout(new BorderLayout());  
      c.add(panel1, BorderLayout.CENTER);
      c.add(panel2, BorderLayout.SOUTH);
 
Code:
Container c = getContentPane();
c.setSize(200, 200);

mach das setSize weg und schau mal ob das was geholfen hat
 
Ich hab mal eine Frage zu deinem Code. Wieso machst du:

Code:
38       c.setLayout(new GridLayout(3, 1));

und nicht
Code:
38       c.setLayout(new GridLayout(2, 1));
?

Sind doch auch nur 2 JPanels die du einsetzt, also zwei Zeilen. Warum stellst du dann auf 3?

Wenn man auf 2 stellt, dann ist der freie Raum stark reduziert.


Und noch etwas...wie hast du den Style aus dem Screenshot hingekriegt? Wenn ich deinen Code laufen lasse, sieht es alles so "billig" aus wie immer.
 
Entweder wurde der Shot mit dem System-LookAndFeel auf einem Mac (sieht zumindest etwas ähnlich) gemacht, oder ein anderes LookAndFeel benutzt.
 
L-ectron-X hat gesagt.:
Entweder wurde der Shot mit dem System-LookAndFeel auf einem Mac (sieht zumindest etwas ähnlich) gemacht, oder ein anderes LookAndFeel benutzt.

Ok danke, hab mir schon sowas gedacht...aber dann fehlt dieser Codeabschnitt oben.
Zu meiner Frage mit den Zeileneinstellungen beim GridLayout kannst du mir sicherlich auch was sagen oder? 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben