I have a problem with JTextField. I will type in my form name, surname, phone_number and email. But I don't know how. Actually System.out.print
prints 4 times null
. Method .getText()
return unknow source.
This is my code:
package View;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import Date.DaneDoKontaktow;
import Date.KolekcjaKontaktow;
import Main.main;
import Model.OperacjeKontakty;
public class DodajKontakt extends JFrame implements ActionListener {
public JButton dodaj;
public JButton anuluj;
public JTextField s_imie;
public JTextField s_nazwisko;
public JTextField s_telefon;
public JTextField s_email;
private OperacjeKontakty operacje = new OperacjeKontakty();
public DodajKontakt(){
super("Dodawanie kontaktu");
setSize(300,300);
setLocationRelativeTo(null);
setLayout(null);
setResizable(false);
setVisible(true);
dodaj = new JButton("Dodaj");
dodaj.setBounds(50, 220, 100, 30);
add(dodaj);
anuluj = new JButton("Anuluj");
anuluj.setBounds(165, 220, 100, 30);
add(anuluj);
DaneDoKontaktow dane = new DaneDoKontaktow();
JLabel imie = new JLabel(dane.imie);
imie.setBounds(15,30,70,15);
add(imie);
JLabel nazwisko = new JLabel(dane.nazwisko);
nazwisko.setBounds(15,60,70,20);
add(nazwisko);
JLabel telefon = new JLabel(dane.telefon);
telefon.setBounds(15,90,70,20);
add(telefon);
JLabel email = new JLabel(dane.email);
email.setBounds(15,120,70,20);
add(email);
anuluj.addActionListener(this);
anuluj.setActionCommand("klik_anuluj");
JTextField s_imie = new JTextField();
s_imie.setBounds(100,20,150,30);
add(s_imie);
JTextField s_nazwisko = new JTextField();
s_nazwisko.setBounds(100,52,150,30);
add(s_nazwisko);
JTextField s_telefon = new JTextField();
s_telefon.setBounds(100,85,150,30);
add(s_telefon);
JTextField s_email = new JTextField();
s_email.setBounds(100,117,150,30);
add(s_email);
dodaj.addActionListener(this);
dodaj.setActionCommand("dodaj");
}
public void actionPerformed(ActionEvent e) {
if( e.getActionCommand().equals("klik_anuluj")){
this.dispose();
}
if (e.getActionCommand().equals("dodaj")){
System.out.print(s_imie);
System.out.print(s_nazwisko);
System.out.print(s_telefon);
System.out.print(s_email);
//operacje.dodaj(s_imie.getText(), s_nazwisko.getText(), s_email.getText(), s_telefon.getText());
this.dispose();
}
}
}
you are overriding the visibility of your Attibutes
public JTextField s_imie;
public JTextField s_nazwisko;
public JTextField s_telefon;
public JTextField s_email;
Instead of :
JTextField s_imie = new JTextField();
s_imie.setBounds(100,20,150,30);
add(s_imie);
use this to initialize your declared variable instead of creating a new one:
s_imie = new JTextField();
s_imie.setBounds(100,20,150,30);
add(s_imie);
Afterwards use the following to print out the content:
System.out.print(s_imie.getText());
Do this for all your variables.