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