GridBagLayout und JTextField

Gehirnfasching

Grünschnabel
Zuaechst war mein Problem, dass das JTextField immer so klein dargestellt wurde. Dazu habe ich mittlerweile zweiLoesungen gefunden -> das Problem scheint geloest, wenn ich eines der beiden Kommentare entferne.
Allerdings kann ich mich nicht damit anfreunden, dass bei beiden Loesungen, sobald ich das Fenster ein bischen verkleinere (also an der rechten unteren Ecke wackle) das Ausgangsproblem immer noch nicht geloest ist.
Hat da jemand ne Idee?


Code:
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

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


public class Test extends JFrame{
	
	
	GridBagConstraints constraints = new GridBagConstraints();
	JPanel eingabeMaske = new JPanel(new GridBagLayout());
	JPanel myContentPane = new JPanel(new GridBagLayout());
	
	
	Test() {
		JPanel zeile1 = new JPanel(new GridBagLayout());		
		zeile1.setPreferredSize(new Dimension(400,24));

		JLabel betreff = new JLabel("Titel:");
		betreff.setFont(new Font("Arial", Font.BOLD, 20));
	
		constraints.weightx = 0.1;
		constraints.anchor = GridBagConstraints.CENTER;
		zeile1.add(betreff, constraints);
		constraints = new GridBagConstraints();
		
		JTextField titel = new JTextField();
//		titel.setMinimumSize(new Dimension(300,22));
		
		constraints.weightx = 1;
//		constraints.fill = GridBagConstraints.BOTH;
		constraints.anchor = GridBagConstraints.WEST;
		constraints.gridwidth = GridBagConstraints.REMAINDER;
		zeile1.add(titel, constraints);
		constraints = new GridBagConstraints();
		
		constraints.gridwidth = GridBagConstraints.REMAINDER;
		constraints.anchor = GridBagConstraints.WEST;
		eingabeMaske.add(zeile1,constraints);
		constraints = new GridBagConstraints();
		
		myContentPane.add(eingabeMaske, constraints);
		constraints = new GridBagConstraints();

		this.setContentPane(myContentPane);
		this.pack();
		this.setVisible(true);
	}
	
	public static void main(String[] args) {
		new Test();
		}//main
}
	}
	
	public static void main(String[] args) {
		new TestFrame();
		}//main
}
 
Hallo,

erstmal möchte ich dich bitten, dass bitte darauf achtest ins richtige Unterforum zu posten.

Zu deinem Problem. Es liegt nicht am Textfeld, dass es so klein wird, sondern an den beiden Panels, die du noch nutzt. Du hast zwar gesagt, dass das Textfeld den restlichen Platz einnimmt, aber das zählt natürlich nur für das Panel in dem das Textfeld liegt. Diesem Panel(zeile1) und dem Panel(eingabemaske) hast du natürlich nicht gesagt, dass sie den restlichen Platz einnehmen sollen, deshalb haben sie sich verkleiner und damit das Textfeld mit.

Java:
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

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

public class Test
    extends JFrame
{

  GridBagConstraints constraints   = new GridBagConstraints();
  JPanel             eingabeMaske  = new JPanel(new GridBagLayout());
  JPanel             myContentPane = new JPanel(new GridBagLayout());

  Test()
  {
    JPanel zeile1 = new JPanel(new GridBagLayout());
    zeile1.setPreferredSize(new Dimension(400, 24));

    JLabel betreff = new JLabel("Titel:");
    betreff.setFont(new Font("Arial", Font.BOLD, 20));

    constraints.weightx = 0;
    constraints.anchor = GridBagConstraints.CENTER;
    zeile1.add(betreff, constraints);
    constraints = new GridBagConstraints();

    JTextField titel = new JTextField();

    constraints.weightx = 1;
    constraints.fill = GridBagConstraints.BOTH;
    constraints.anchor = GridBagConstraints.WEST;
    constraints.gridwidth = GridBagConstraints.REMAINDER;
    zeile1.add(titel, constraints);
    
    constraints = new GridBagConstraints();
    constraints.weightx = 1;
    constraints.fill = GridBagConstraints.BOTH;
    constraints.gridwidth = GridBagConstraints.REMAINDER;
    constraints.anchor = GridBagConstraints.WEST;
    eingabeMaske.add(zeile1, constraints);
    
    constraints = new GridBagConstraints();
    constraints.weightx = 1;
    constraints.fill = GridBagConstraints.BOTH;
    myContentPane.add(eingabeMaske, constraints);
    constraints = new GridBagConstraints();

    this.setContentPane(myContentPane);
    this.pack();
    this.setVisible(true);
  }

  public static void main(String[] args)
  {
    new Test();
  }// main
}

MFG

Sascha
 
Zurück