Ich hatte früher mal den Fehler gemacht das GridBagConstraints Objekt vor dem initialisieren und setzen mit setConstraints() nie neu anzulegen. Ich habe praktisch immer das gleiche Objekt verwendet und nur neu initialisiert.
Das führte dazu, dass die Elemente nie so wirklich genau so positioniert waren wie ich wollte.
Vielleicht machst du es auch so und es kommt deswegen zu dem Problem das SWING nicht erkennt, dass es an der Stelle das JTextField eigentlich überdecken muss.
Beispiel wie es sein sollte:
[B]gbc = new GridBagConstraints();[/B]
gbc.insets = new Insets(2,2,2,2);
gbc.ipadx = 0;
gbc.gridx = 0;
gbc.gridheight = 1;
textFieldRateValueA.setDocument(new RateFieldDocument());
gbl.setConstraints(textFieldRateValueA, gbc);
panel.add(textFieldRateValueA);
[B]gbc = new GridBagConstraints();[/B]
gbc.insets = new Insets(2,2,2,2);
gbc.gridx = 1;
gbc.gridy = 0;
gbc.gridheight = 1;
rateLabelx.setText(":");
gbl.setConstraints(rateLabelx, gbc);
panel.add(rateLabelx);
[B]gbc = new GridBagConstraints();[/B]
gbc.insets = new Insets(2,2,2,2);
gbc.gridx = 2;
gbc.gridy = 0;
gbc.gridheight = 1;
textFieldRateValueB.setDocument(new RateFieldDocument());
gbl.setConstraints(textFieldRateValueB, gbc);
panel.add(textFieldRateValueB);
ist nur ne Idee aber besser als nix ^^