Tworzenie Formularza w Swingu

0

Witam,

Otrzymałem projekt w którym mam zbudować formularz poprzez Swing , formularz oczywiście jest graficznie zrobiony tylko pozostaje pytanie w jaki sposób wysyłać z niego dane do konkretnych obiektów...Troszkę się miotam w tym,bo Java dla mnie to nowa przygoda więc postanowiłem poprosić o pomoc... Jest wiele niejasności w moim myśleniu na ten temat. Nie wiem gdzie i w jaki sposób zorganizować klasę Klienta i jak dodawać obiekty do tej klasy właśnie poprzez kliknięcie przycisku ("Dodaj") na formularzu (wiem, że metodą getText, ale w którym miejscu..?), nie wiem czy taki obiekt ma się tworzyć w ActionListener czy w jakieś nowej klasie... Bardzo proszę o pomoc. Oto mój kod:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;

public class Klient extends JFrame {

    public JTextField timie;
    public  JTextField tnazwisko;
     JTextField tpesel;
     JTextField trodzajdok;
     JTextField tnrdok;
     JTextArea tadres;
     JTextField tiloscnaboi;
     JTextField tilosctarcz;
     JComboBox lista;
     JCheckBox chwypbron;
     JButton wyczysc;
     JButton dodaj;

         Klient(){
             super("Klient");
             setVisible(true);
             setSize(300,600);
             setResizable(true);

             //1
             JLabel limie = new JLabel("Imie:");
             timie = new JTextField("",1); 
             //2
             JLabel lnazwisko = new JLabel("Nazwisko:");
             tnazwisko = new JTextField("",1);
             //3
             JLabel lpesel = new JLabel("PESEL:");
             tpesel = new JTextField("",1);
             //4
             JLabel lrodzajdok = new JLabel("Rodzaj dokumentu:");
             trodzajdok = new JTextField("",1);
             //5
             JLabel lnrdok = new JLabel("Numer dokumentu:");
             tnrdok = new JTextField("",1);
             //6
             JLabel ladres = new JLabel("Adres:");
             tadres = new JTextArea();
             //7  
             JLabel liloscnaboi = new JLabel("Ilość zakupionych naboi:");
             tiloscnaboi = new JTextField("",1);
             //8
             JLabel lilosctarcz = new JLabel("Ilość zakupionych tarcz:");
             tilosctarcz = new JTextField("",1);

             JLabel llistabroni = new JLabel("Wypożyczony Sprzęt:");
             lista = new JComboBox();
             lista.addItem("pierwszy");
             lista.addItem("drugi");
             lista.addItem("trzeci");
             //9
             JLabel lwypbron = new JLabel("Wypozyczenie Broni:");
             chwypbron = new JCheckBox();

             //10
             wyczysc = new JButton("Wyczyść");
             dodaj = new JButton("Dodaj klienta");

             JPanel panel = new JPanel();
             panel.setLayout( new GridLayout(11,2));

             panel.add(limie);
             panel.add(timie);
             panel.add(lnazwisko);
             panel.add(tnazwisko);
             panel.add(lpesel);
             panel.add(tpesel);
             panel.add(ladres);
             panel.add(tadres);
             panel.add(lrodzajdok);
             panel.add(trodzajdok); 
             panel.add(lnrdok);
             panel.add(tnrdok); 
             panel.add(liloscnaboi);
             panel.add(tiloscnaboi);
             panel.add(lilosctarcz);
             panel.add(tilosctarcz);
             panel.add(lwypbron);
             panel.add(chwypbron);
             panel.add(llistabroni);
             panel.add(lista);
             panel.add(llistabroni);
             panel.add(lista);
             panel.add(dodaj);
             panel.add(wyczysc);

             this.add(panel);

             wyczysc.addActionListener( new Czyszczenie());
             dodaj.addActionListener( new DodawanieKlienta());

         }
}
0

Możesz utworzyć Obiekt DodawKlienta w ActionListener i na jego rzecz wywołać metodę np: dodKlienta.setKlient(i tu argumenty z pól tekstowych).

:P

public class Test{

    public static void main(String[] args){
        JFrame f = new Test1();
        f.setVisible(true);
        f.setSize(200, 200);
        f.setLocationRelativeTo(null);
    }
}

class Test1 extends JFrame{
    JTextField klientNameTextField;
    JLabel l = new JLabel();
    Test1(){
        JPanel p = new JPanel();
        klientNameTextField = new JTextField(10);
        JButton b  = new JButton("Dodaj");
        b.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                Klient al = new Klient(klientNameTextField.getText());
                l.setText(al.getKlient());
            }

        });
        p.add(b);
        p.add(klientNameTextField);
        p.add(l);

        setContentPane(p);
    }
}

class Klient{
    String name = new String();

    public Klient(String name){
        this.name = name;
    }
    public String getKlient(){
        return name;
    }
}
0

dziękuję Ci bardzo, bardzo pomocne ! :)

0

Tak z nudów.

Test1(){
        JPanel p = new JPanel();
        klientNameTextField = new JTextField(10);
        idTextField = new JTextField("id",10);
        dodajKlienta  = new JButton("Dodaj");
        pokazKlienta = new JButton("Pokaż klienta");
        dodajKlienta.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                kl = new Klient();
                kl.setKlient(klientNameTextField.getText());
                //System.out.println(al.getKlient());
                klient.add(kl);
            }
        });

        pokazKlienta.addActionListener(new ActionListener(){

            @Override
            public void actionPerformed(ActionEvent e) {
                id = Integer.parseInt(idTextField.getText());
                System.out.println(klient.get(id).getKlient());
            }

        });

        p.add(dodajKlienta);
        p.add(pokazKlienta);
        p.add(klientNameTextField);
        p.add(idTextField);
        p.add(l);

        setContentPane(p);
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0