Witam posiadam dwie klasy dziedziczące po JFrame w pierwszej jest GUI (tabela przycisk oraz przykladowe dane do tabeli).
W drugiej sa pola do wpisania tekstu chciałbym przesłać podany tekst do metody umieszczonej w klasie pierwszej(po wciśnięciu przycisku).
Domyslam się żeby korzystac z metodu umieszczonej w innej klasie musze po niej dziedziczyc ale dziedzicze juz po JFrame. Nie wiem czy mam próbować stworzyc jakiś interface? czy mozna rozwiącać mój problem jakoś prosciej?
Próbowałem dostac sie do tej metody przez utworzenie obiektu tej klasy
W komentarzach sa zapisane moje próby
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package GUI;
import java.awt.BorderLayout;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Stack;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
*
* @author luppo
*/
public class UzytkownikGui extends JFrame{
private final JTable tabela;
Vector<Vector<String>> dane;
public UzytkownikGui() throws HeadlessException {
Vector<String> kolumny = new Stack<>();
kolumny.add("Id");
kolumny.add("Imie");
kolumny.add("Nazisko");
kolumny.add("Pesel");
dane = new Vector<>();
dane.addElement(dodajRekord("1", "adfsas", "asdfa", "safdasdfsa"));
dane.addElement(dodajRekord("1", "adfsas", "asdfa", "safdasdfsa"));
DefaultTableModel model = new DefaultTableModel(dane, kolumny);
tabela = new JTable(model);
JScrollPane scroll = new JScrollPane(tabela);
add(scroll);
JButton dodajWiersz = new JButton("Dodaj nowy wiersz");
dodajWiersz.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new dodajUzytkownikaGui();
UzytkownikGui.this.tabela.addNotify();
}
});
add(dodajWiersz,BorderLayout.SOUTH);
initComponent();
}
public Vector<String> dodajRekord(String id,String imie, String nazwisko,String pesel){
Vector< String > pojedynczyWiersz = new Vector<>();
pojedynczyWiersz.add(id);
pojedynczyWiersz.add(imie);
pojedynczyWiersz.add(nazwisko);
pojedynczyWiersz.add(pesel);
return pojedynczyWiersz;
}
private void initComponent(){
setDefaultCloseOperation(3);
pack();
setVisible(true);
}
public static void main (String[] arga){
new UzytkownikGui();
}
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package GUI;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
*
* @author luppo
*/
public class dodajUzytkownikaGui extends JFrame {
private JPanel panel;
private JTextField poleImie;
private JLabel imieLabel;
private JLabel naziskoLabel;
private TextField poleNazwosko;
private JTextField polePesel;
private JLabel peselLabel;
private JButton dodajUzytkownika;
private UzytkownikGui uzytkownik;
public dodajUzytkownikaGui() {
initComponent();
}
private void initComponent() {
panel = new JPanel(new GridLayout(3, 2));
imieLabel = new JLabel("imie");
poleImie = new JTextField();
naziskoLabel = new JLabel("nazwisko :");
poleNazwosko = new TextField();
peselLabel= new JLabel("pesel : ");
polePesel = new JTextField();
panel.add(imieLabel);
panel.add(poleImie);
panel.add(naziskoLabel);
panel.add(poleNazwosko);
panel.add(peselLabel);
panel.add(polePesel);
add(panel);
dodajUzytkownika = new JButton("Dodaj Uzytkownika");
dodajUzytkownika.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("10"+ poleImie.getText()+ poleNazwosko.getText()+ polePesel.getText());
//dodajUzytkownikaGui.this.uzytkownik.dane.addElement(dodajRekord("10", poleImie.getText(), poleNazwosko.getText(), polePesel.getText()));
//dodajUzytkownikaGui.this.uzytkownik.dane.addElement(dodajUzytkownikaGui.this.uzytkownik.dodajRekord("10", poleImie.getText(), poleNazwosko.getText(), polePesel.getText()));
}
});
add(dodajUzytkownika,BorderLayout.SOUTH);
setLocationRelativeTo(null);
pack();
setVisible(true);
}
}
Po wcisniesu przycisku wyswietla mi wszystko z System.out.println(); oraz wyjątek java.lang.NullPointerException
Z góry dziękuje za pomoc