JFormattedTextField - vertical misalignment problems...

Status
Nicht offen für weitere Antworten.

acinau

Mitglied
Hi, anstatt BoxLayout, verwende ich JFormattedTextField um die paare "JLabels und JTextField" aufzustellen.
There is one bad display problem, the vertical misalignment betw JLables and their corresponding JTextFields.
Here is the code longish stub code:
Code:
public class LayoutTest8 extends JApplet implements AdjustmentListener
{ ...java...
  private JLabel lblName, lblAddr1, lblAddr2, lblCity, lblZip, lblCountry;
  private JFormattedTextField fldName, fldAddr1, fldAddr2, fldCity, fldZip, fldCountry;
  private static String strName = "Name: ";
  private static String strAddr1 = "Address: ";
  private static String strAddr2 = "Address: ";
  private static String strCity  = "City: ";
  private static String strZip   = "Zip Code: ";
  private static String strCountry = "Country: ";
  private NumberFormat pctFormat;
  private MessageFormat msgFormat;
  
  public void init()
  {
    setBackground(Color.lightGray);
    Container contentPane = getContentPane(); 
    JPanel px = new JPanel();
    px.setLayout(new GridLayout(5,2));
    ...java...
    JPanel p9 = new JPanel();
    // p9.setLayout(new BoxLayout(p9, BoxLayout.Y_AXIS));
      // create labels:
      lblName = new JLabel(strName);
      lblAddr1 = new JLabel(strAddr1);
      lblAddr2 = new JLabel(strAddr2);
      lblCity = new JLabel(strCity);
      lblZip = new JLabel(strZip);
      lblCountry = new JLabel(strCountry);
      // create text fields:
      fldName = new JFormattedTextField(msgFormat);
      fldName.setColumns(20);
      fldName.setEditable(false);
      fldAddr1 = new JFormattedTextField(msgFormat);
      fldAddr1.setColumns(20);
      fldAddr1.setEditable(false);
      fldAddr2 = new JFormattedTextField(msgFormat);
      fldAddr2.setColumns(20);
      fldAddr2.setEditable(false);
      fldCity = new JFormattedTextField(msgFormat);
      fldCity.setColumns(20);
      fldCity.setEditable(false);
      fldZip = new JFormattedTextField(msgFormat);
      fldZip.setColumns(20);
      fldZip.setEditable(false);
      fldCountry = new JFormattedTextField(msgFormat);
      fldCountry.setColumns(20);
      fldCountry.setEditable(false);
      // Accessibility : build pairs of labels + textfields
      lblName.setLabelFor(fldName);
      lblAddr1.setLabelFor(fldAddr1);
      lblAddr2.setLabelFor(fldAddr2);
      lblCity.setLabelFor(fldCity);
      lblZip.setLabelFor(fldZip);
      lblCountry.setLabelFor(fldZip);
      // put pairs of label and text into their respective grid...
      JPanel p9_left = new JPanel(new GridLayout(0,1));
        p9_left.add(lblName);
        p9_left.add(lblAddr1);
        p9_left.add(lblAddr2);
        p9_left.add(lblCity);
        p9_left.add(lblZip);
        p9_left.add(lblCountry);
      JPanel p9_right = new JPanel(new GridLayout(0,1));
      p9_right.setBackground(Color.WHITE);
        p9_right.add(fldName);
        p9_right.add(fldAddr1);
        p9_right.add(fldAddr2);
        p9_right.add(fldCity);
        p9_right.add(fldZip);
        p9_right.add(fldCountry);
      p9.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
      p9.add(p9_left,BorderLayout.CENTER);
      p9.add(p9_right,BorderLayout.LINE_END);
    px.add(p9);

Yes it works, bar the alignment problem.
Dar ich auf eine Antwort hoffen dieses mal? Tja!
TIA :)
 
G

Guest

Gast
Damals war es C and F77
Nachher C and C++
Nunmehr kommt noch Java dazu.
 

acinau

Mitglied
Und, kannst do mal nachschauen ?
Gibt's da eine *einfache* Loesung zu meinem Problem, also eine, die ich verstehen kann?
 

el_barto

Bekanntes Mitglied
nö, is mir erstens zu viel code und zweitens sind awt & swing auch nicht gerade so mein ding. hab erst vor kurzem damit angefangen, mal 'n bißchen damit rumzuspielen.
 

el_barto

Bekanntes Mitglied
nö, is mir erstens zu viel code und zweitens sind awt & swing auch nicht gerade so mein ding. hab erst vor kurzem damit angefangen, mal 'n bißchen damit rumzuspielen.

<edit>
oops, doppelpost -> bitte löschen
 

acinau

Mitglied
In vinos veritas...
The bloody (blutiger) Java Console prints only what I tell it to print with
Code:
System.out.println("blabla");
Right?
So why don't you have a look at this and modify it to your need:
Code:
  OutputArea output;
   ...
    try // 
    { bloodyNewFrame = new AFrame(codeBase, baseInstr);
    } catch (IOException iox)
    { System.out.println("exception: " + iox.getMessage());
      iox.printStackTrace();
    }
    //
    String s = "Action event detected."
             + "\n"
             + "    Event source: " + source.getText()
             + " (an instance of " + getClassName(source) + ")";
     output.append(s + "\n");
     output.setCaretPosition(output.getDocument().getLength());
  }
and the code for the helper class OutputArea is
Code:
  // ==============================
  public class OutputArea extends JTextArea
  {
    JTextArea outputArea;
    JScrollPane scrolloutput;
    OutputArea(int rows, int columns)
    {
      add(outputArea = new JTextArea(rows, columns));
      outputArea.setEditable(false);
      outputArea.setLineWrap(true);
      scrolloutput = new JScrollPane(outputArea);
      scrolloutput.setPreferredSize(new Dimension(250,250));
    }
  }// end of class OutputArea
  // ==============================
Modify it, try it, works for me...
 

acinau

Mitglied
Hey, el_barto
I figured mine out , have you figured yours out yet?
Sowohl JLabel als auch JTextField muessen die selben set PreferredSize(new Dimension(x,y)) haben
Was habe ich dir gesagt ? In vinos veritas!
 

el_barto

Bekanntes Mitglied
doch, is anstrengend. glaub, das wird heute nix mehr. fakt ist aber, dass ich es so ähnlich schon ausprobiert habe. das problem ist halt der mehrfache aufruf von append(). probier doch in deinem bsp. mal folgendes:
Code:
...
output.append("bla1");
try {
    Thread.sleep(3000);
} catch (InterruptedException ie) {
    ...
}
output.append("bla2");
...
wenn dann sofort "bla1" im textarea erscheint und nach 3 sekunden "bla2", dann ist das die lösung die ich suche. wenn allerdings 3 sekunden gar nix passiert und dann "bla1" und "bla2" gleichzeitig auftauchen, dann druck dir deine source aus und benutz sie als untersetzer für dein weinglas. :wink:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
S JFormattedTextField dezimal variabler Länge AWT, Swing, JavaFX & SWT 12
Ghostman1711 Java JFormattedTextfield MaskFormatter ohne Leerzeichen AWT, Swing, JavaFX & SWT 3
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
M European Article Number (EAN) in JFormattedTextfield AWT, Swing, JavaFX & SWT 3
L JFormattedTextField AWT, Swing, JavaFX & SWT 3
B Swing JFormattedTextField AWT, Swing, JavaFX & SWT 4
Y JFormattedTextfield - Aktualisierung und Beschränkung AWT, Swing, JavaFX & SWT 4
V Swing Nullpointer Exception bei JFormattedTextField AWT, Swing, JavaFX & SWT 4
S Swing JFormattedTextField - bei nicht korrekter Eingabe Inhalt überschreiben AWT, Swing, JavaFX & SWT 5
S Swing JFormattedTextfield markiert nicht gesamten Inhalt AWT, Swing, JavaFX & SWT 4
C Swing Button in Textfeld (JFormattedTextField) AWT, Swing, JavaFX & SWT 7
A jformattedtextfield unsichtbar und wieder sichtbar machen AWT, Swing, JavaFX & SWT 13
C Swing JFormattedTextField + Eurobetrag AWT, Swing, JavaFX & SWT 2
E Problem mit MaskFormatter und JFormattedTextField AWT, Swing, JavaFX & SWT 3
A EventListener für JFormattedTextField AWT, Swing, JavaFX & SWT 6
B Swing Betrag mit Komma aus jformattedtextfield auslesen. AWT, Swing, JavaFX & SWT 2
E Swing JFormattedTextField Live Validierung AWT, Swing, JavaFX & SWT 4
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
G JFormattedTextField und DefaultButton AWT, Swing, JavaFX & SWT 6
B Swing JFormattedTextField auf mehreren JPanels in einer JTabbedPane AWT, Swing, JavaFX & SWT 3
G JFormattedTextField values AWT, Swing, JavaFX & SWT 8
R JFormattedTextField AWT, Swing, JavaFX & SWT 8
D Eingabemaske im JFormattedTextField ändern AWT, Swing, JavaFX & SWT 3
D JFormattedTextfield um Grafik erweitern AWT, Swing, JavaFX & SWT 15
N JFormattedTextField erst Verlassen, wenn Eingabe korrekt AWT, Swing, JavaFX & SWT 6
G JFormattedTextField lässt sich nicht mehr leeren AWT, Swing, JavaFX & SWT 4
N PropertyChangeListener an JFormattedTextField AWT, Swing, JavaFX & SWT 7
D Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 6
A Problem mit JFormattedTextField auslesen AWT, Swing, JavaFX & SWT 11
S JFormattedTextField und maximal 3 Stellen. AWT, Swing, JavaFX & SWT 11
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
E JformattedTextField, Dialog und weitere Kleinigkeiten . AWT, Swing, JavaFX & SWT 2
E Problem mit Validierende Eingabefeldern JFormattedTextField AWT, Swing, JavaFX & SWT 8
B JFormattedTextField mit DecimalFormat in ein Double AWT, Swing, JavaFX & SWT 11
C JFormattedTextField - nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 3
H JFormattedTextField - Einen Preis eingeben lassen AWT, Swing, JavaFX & SWT 2
B Zeichen werden im JFormattedTextField überschrieben AWT, Swing, JavaFX & SWT 3
H JFormattedTextField AWT, Swing, JavaFX & SWT 4
W IP-Adresse mit JFormattedTextField AWT, Swing, JavaFX & SWT 5
F JFormattedTextField formatieren AWT, Swing, JavaFX & SWT 7
J [JFormattedTextField] Nur Zahlen eingebbar AWT, Swing, JavaFX & SWT 3
S [JFormattedTextField] Ja wie denn nun? AWT, Swing, JavaFX & SWT 2
G Datumseingabe mit JFormattedTextField AWT, Swing, JavaFX & SWT 4
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
H Frage zu JFormattedTextField AWT, Swing, JavaFX & SWT 2
G Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 3
M Datumseingabe in ein JFormattedTextfield AWT, Swing, JavaFX & SWT 2
F Problem mit JFormattedTextField AWT, Swing, JavaFX & SWT 4
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
Burny91 Swing Vertical JSplitPane lässt sich nicht nach rechts verschieben AWT, Swing, JavaFX & SWT 2
F Text Vertical in Zellen von JTable AWT, Swing, JavaFX & SWT 3
I Vertical FlowLayout AWT, Swing, JavaFX & SWT 1
javasdann Vertical ScrollBar in JTable verfälscht anzeigen. AWT, Swing, JavaFX & SWT 12
P vertical FlowLaoyut ? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben