Avatar billede axcx Nybegynder
31. oktober 2005 - 11:51 Der er 7 kommentarer og
1 løsning

Dynamisk GUI skal oprettes ved hjælp af data fra arraylist

hejsa alle

Jeg sidder med et lille problem. Jeg er igang med at lave et program som skal administrere søgning, indsætning, sletning osv i en mysql database.

Planen var at når der skal indsættes en ny bruger i databasen skal der først tjekkes efter hvilke columns der allerede er i databasen (eks. kundenavn, alder, bynavn)

Det virker fint og det hele ligger i en arraylist som hedder indsaetArray. Dens indhold ser sådan her ud "[kunde, VARCHAR, alder, INTEGER, Bynavn, VARCHAR]"

Nu kommer problemet :) der skal nu oprettes et GUI som er lavet ud fra de ting som står i Arrayet, jeg havde tænkt mig noget i retningen af www.jajo.midtfyn.net/hihihi.jpg hvor at vis jeg opretter en ny column med tlf nummer vil der automatisk blive lavet et textfield mere.
Herefter skal der ud fra hvad der indtastes i de textfields laves en sql sætning som indsætter brugeren :)

Håber det bare giver lidt menning ellers må i skrive for mere info hehe :)

mvh Jakob
Avatar billede kalp Novice
31. oktober 2005 - 11:58 #1
din SQL opretter du sådan her

String sql = "INSERT INTO dinTabel VALUES ('"+ jtextfield1.getText() +"','"+ Integer.parseInt(jtextfield2.getText()) +"','"+ jtextfield3.getText() +"')";
Avatar billede kalp Novice
31. oktober 2005 - 11:59 #2
hvor du erstatter dintabel med din tabels navn.

nu har jeg kaldt dine jtextfields for 1,2 og 3, men det er bare at ændre navnet til det du nu har kaldt dem.

din SQL sætning ligger herefter gemt i din String query:)
Avatar billede kalp Novice
31. oktober 2005 - 12:00 #3
hvis den anden fejler så brug denne.. kan ikke lige huske placeringen af tegnet '

String sql = "INSERT INTO dinTabel VALUES ("'+ jtextfield1.getText() +'","'+ Integer.parseInt(jtextfield2.getText()) +'","'+ jtextfield3.getText() +'")";
Avatar billede arne_v Ekspert
31. oktober 2005 - 12:10 #4
i din JFrame afledte klasse henter du din ArrayList, du opretter et array af
JLabel og JTextBox udfra din ArrayList og adder dem til content pane (GridLayout
lyder anvendeligt !), når du skal gemme løber du gennem dit array og appender
til din SQL streng
Avatar billede axcx Nybegynder
31. oktober 2005 - 12:13 #5
takker for svarene, jeg kigger på det og vender tilbage :)
Avatar billede arne_v Ekspert
31. oktober 2005 - 20:17 #6
til inspiration:

package october;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

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

public class DynGUI extends JFrame implements ActionListener {
    private JPanel fieldspanel;
    private JTextField[] dynfields;
    private JButton save;
    public DynGUI(List fields) {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(new JLabel("Data entering"), BorderLayout.NORTH);
        fieldspanel = new JPanel();
        fieldspanel.setLayout(new GridLayout(fields.size(), 2));
        dynfields = new JTextField[fields.size()];
        for(int i = 0; i < dynfields.length; i++) {
            fieldspanel.add(new JLabel((String)fields.get(i)));
            dynfields[i] = new JTextField();
            fieldspanel.add(dynfields[i]);
        }
        getContentPane().add(fieldspanel, BorderLayout.CENTER);
        save = new JButton("Save");
        save.addActionListener(this);
        getContentPane().add(save, BorderLayout.SOUTH);
        pack();
    }

    public void actionPerformed(ActionEvent e) {
        String sql = "INSERT INTO tabelnavn VALUES(";
        for(int i = 0; i < dynfields.length; i++) {
            if(i > 0) {
                sql = sql + ",";
            }
            sql = sql + dynfields[i].getText();
        }
        sql = sql + ")";
        JOptionPane.showMessageDialog(null, sql);
    }

    public static void main(String[] args) {
        List fields = new ArrayList();
        fields.add("felt1");
        fields.add("felt2");
        fields.add("felt3");
        DynGUI f = new DynGUI(fields);
        f.setVisible(true);
    }
}
Avatar billede axcx Nybegynder
01. november 2005 - 19:16 #7
takker arne :) smid et svar
Avatar billede arne_v Ekspert
01. november 2005 - 19:22 #8
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester