Formular mit n-Textfeldern generieren

Status
Nicht offen für weitere Antworten.
P

picard

Gast
Hallo,

ich möchte ein dynamisches Formular generieren. Man kann sich dies wie bei einem Vokabeltrainer vorstellen: der Nutzer gibt die Anzahl der Wörter an und das Programm generiert dann ein Formular mit n-Textfeldern.

Wie kann ich dies in Java realisieren (bezüglich Layout etc.)? Und wie lese ich alle Infos wieder aus?

Wäre super, wenn Ihr mir helfen könntet,
picard :roll:
 
S

SlaterB

Gast
ob man nun
container.add(textFeldA);
container.add(textFeldB);
aufruft oder

for (i bis n) {
container.add(textFeld);
}

ist ziemlich egal, die Layouts kommen meist mit vielen Komponenten gut zurecht,

die Komponenten wie angedeutet in einem Array speichern usw.

da sind doch erstmal einfache Anfänge zu leisten,
weißt du denn da schon gar nicht weiter?..
 

data89

Bekanntes Mitglied
Mein Problem besteht darin, dass ich keine Ahnung habe, wie ich die Textfelder untereinander anordne und diese wieder auslesen kann. :?:

data89

P.S.: Eine Frage am Rande (gehört zwar nicht hier her, dafür muss ich dann aber keinen neuen Beitrag eröffnen): Wie berechne ich die größe eines Strings in byte? Also ich gebe den String "Hallo" rein un bekomme raus "21" Byte. Ich habe gelesen, dass die Zeichen Addiert werden (ord/chr) + "FOF" .. ?
 
S

SlaterB

Gast
> dass ich keine Ahnung habe, wie ich die Textfelder untereinander anordne

GridLayout, GridBagLayout, BoxLayout,
gibt so vieles,

ohne sich jeweils Stunden bis Wochen damit auseinander gesetzt zu haben, kann man diese natürlich schlecht einschätzen,

da hilft auch kein Forum, nur echte Arbeit..

> und diese wieder auslesen kann.

das ist leicht: aus einem Layout liest man normalerweise NIE wieder etwas heraus,
stattdessen legst du die Komponenten/ Daten separat irgendwo geordnet ab, z.B. ein einem Array/ einer Liste, wie schon erwähnt
 

data89

Bekanntes Mitglied
Hier ist eine mögliche Lösung (die ich auch verstehe!!!): :roll:
Aus: Java ist auch eine Insel
Code:
import java.awt.*; 
 
import javax.swing.*; 
 
class test 
{ 
  static void addComponent( Container cont, 
                            GridBagLayout gbl, 
                            Component c, 
 
                            int x, int y, 
                            int width, int height, 
                            double weightx, double weighty ) 
  { 
    GridBagConstraints gbc = new GridBagConstraints(); 
    gbc.fill = GridBagConstraints.BOTH; 
    gbc.gridx = x; gbc.gridy = y; 
    gbc.gridwidth = width; gbc.gridheight = height; 
    gbc.weightx = weightx; gbc.weighty = weighty; 
    gbl.setConstraints( c, gbc ); 
    cont.add( c ); 
  } 
 
  public static void main( String[] args ) 
  { 
    JFrame f = new JFrame(); 
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
    Container c = f.getContentPane(); 
 
    GridBagLayout gbl = new GridBagLayout(); 
    c.setLayout( gbl ); 

    addComponent( c, gbl, new JLabel("Vokabel 1:"), 0, 1, 1, 1, 1.0, 1.0 ); 
    addComponent( c, gbl, new JTextArea("1")    , 1, 1, 1, 1, 1.0, 1.0 );
    
    addComponent( c, gbl, new JLabel("Vokabel 2:"), 0, 2, 1, 1, 1.0, 1.0 ); 
    addComponent( c, gbl, new JTextArea("2"), 1, 2, 1, 1, 1.0, 1.0 ); 

 
    f.setSize( 300, 200 ); 
    f.setVisible( true ); 
  } 
}

Zum erstellen habe ich mir das mit der for-Schleife überlegt (Attribut mit JTextArea[]). Auslesen kann man dies doch, wenn man dann (nach dem bearbeiten) den JTextArea[]-Array durchläuft und sich immer den Text geben lässt!

Nun geht es an die Feinheiten:
* Wie kann ich die Größe beschränken? Derzeit wächst das Textfeld mit dem Text.
* Wie kann ich die Komponenten oben, mittig oder unten anordnen?

data89
 
S

SlaterB

Gast
puh, gleich das schwere GridBagLayout,

hier eine geänderte Variante zur Ansicht
Code:
public class Test
{
    static void addComponent(Container cont, GridBagLayout gbl, Component c,

    int x, int y, int width, int height, double weightx, double weighty, int fill, int anchor)
    {
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill = fill;
        gbc.gridx = x;
        gbc.gridy = y;
        gbc.gridwidth = width;
        gbc.gridheight = height;
        gbc.weightx = weightx;
        gbc.weighty = weighty;
        gbc.anchor = anchor;
        gbl.setConstraints(c, gbc);
        cont.add(c);
    }

    public static void main(String[] args)
    {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container c = f.getContentPane();

        GridBagLayout gbl = new GridBagLayout();
        c.setLayout(gbl);

        addComponent(c, gbl, new JLabel("Vokabel 1:"), 0, 1, 1, 1, 0, 0, 
                     GridBagConstraints.NONE, GridBagConstraints.CENTER);
        addComponent(c, gbl, new JTextArea("1"), 1, 1, 1, 1, 1.0, 0, 
                     GridBagConstraints.HORIZONTAL, GridBagConstraints.CENTER);

        addComponent(c, gbl, new JLabel("Vokabel 2:"), 0, 2, 1, 1, 0, 0, 
                     GridBagConstraints.NONE, GridBagConstraints.NORTH);
        JTextArea second = new JTextArea("2");
        second.setBorder(BorderFactory.createLineBorder(Color.BLUE));
        addComponent(c, gbl, second, 1, 2, 1, 1, 1.0, 1.0, 
                     GridBagConstraints.BOTH, GridBagConstraints.CENTER);

        f.setSize(300, 200);
        f.setVisible(true);
    }
}
ich verabschiede mich aber gleich mal, bevor ich alle möglichen Details beantworten muss ;)
 

data89

Bekanntes Mitglied
Super - das gefällt mir!! :applaus:
Danke SlaterB!

Aber ...
Wie kann ich denn nun noch den Rand um das JLabel erhöhen, damit dieses nicht so in die Ecke gequetscht ist?? In CSS würde ich das mit margin machen.

data89
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
yvesdaeschle Wie Report mit fixem Formular AWT, Swing, JavaFX & SWT 2
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
N Formular für Suchanfragen in einer Datenbank AWT, Swing, JavaFX & SWT 3
B Swing Formular mit mehreren Elementen - wie die ActionListener-Verarbeitung lösen? AWT, Swing, JavaFX & SWT 2
M Formular in GridLayout ? AWT, Swing, JavaFX & SWT 17
F jpanel oder jframe Formular AWT, Swing, JavaFX & SWT 4
S Tabelle im selben Formular anzeigen AWT, Swing, JavaFX & SWT 6
N Formular mit GridBaglayout und Abstände von Labels AWT, Swing, JavaFX & SWT 2
J -variable Formular Klasse AWT, Swing, JavaFX & SWT 2
R Zentral Veränderungen auf einer Maske/Formular abfragen AWT, Swing, JavaFX & SWT 6
G JTable aus anderem Formular aus aendern AWT, Swing, JavaFX & SWT 7
G "Formular" nachbilden AWT, Swing, JavaFX & SWT 7
M Frage bzgl. Formular-Design. AWT, Swing, JavaFX & SWT 2
G Formular erstellen ? AWT, Swing, JavaFX & SWT 3
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
kodela Verspätete Anzeige in Textfeldern AWT, Swing, JavaFX & SWT 8
J Event Handling Button "enablen" wenn Eingaben in Textfeldern korrekt sind AWT, Swing, JavaFX & SWT 1
P Text aus TextFeldern tauschen AWT, Swing, JavaFX & SWT 2
F Text von Textfeldern verarbeiten AWT, Swing, JavaFX & SWT 12
T Input-Check bei Textfeldern in Table AWT, Swing, JavaFX & SWT 5
P Applet darstellung von Textfeldern Problem AWT, Swing, JavaFX & SWT 3
Z Wie kann ich Text unter den Textfeldern einfügen? AWT, Swing, JavaFX & SWT 3
E transparenz (alpha) - komisches aussehen von textfeldern! AWT, Swing, JavaFX & SWT 2
D Arbeiten mit 2 TextFeldern gleichzeitig AWT, Swing, JavaFX & SWT 6
H LayoutManager RPG Programmieren, eigenes Spielfeld grafisch generieren aus Tileset AWT, Swing, JavaFX & SWT 18
R Farbe zu einem Eckpunkt generieren AWT, Swing, JavaFX & SWT 2
S Aus XML Datei FXML generieren AWT, Swing, JavaFX & SWT 4
U Swing Buttons generieren AWT, Swing, JavaFX & SWT 19
A AWT Nach dem generieren von bildern verschwinden diese wieder AWT, Swing, JavaFX & SWT 9
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
L ID für GUI Elemente generieren AWT, Swing, JavaFX & SWT 11
S SWT Bei Auslösen eines Buttones ein Textfeld generieren AWT, Swing, JavaFX & SWT 2
M Dynamisches generieren und ausrichten von Komponenten AWT, Swing, JavaFX & SWT 11
N Bilder aus Infos generieren lassen. Welches Framework? AWT, Swing, JavaFX & SWT 8
D AWT Netzwerkadresse generieren! Help?! AWT, Swing, JavaFX & SWT 35
X Video's aus JPG's oder BufferedImages generieren AWT, Swing, JavaFX & SWT 3
O Fensterinhalt löschen und neu generieren AWT, Swing, JavaFX & SWT 2
G Mousecursor selber dynamisch generieren. AWT, Swing, JavaFX & SWT 6
F Bildleiste generieren AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben