Nie wyświetla się w ogóle okno, po czym dostaję komunikat wystąpił wyjątek w wątku FindWindow.
package marcin;
import java.awt.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class FindWindow implements ListSelectionListener{
JList<String> jlistOfPeople;
JTextField jtfPerson;
JLabel jlab;
String[] jpeople;
JScrollPane jscroll;
public void readDB(){
int i=0;
try {
Scanner sc = new Scanner(new File("//home//marcin//workspace//BazaOsob//Osoby.txt"));
while(sc.hasNext()){
jpeople[i] = sc.nextLine();
i++;
}
sc.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
FindWindow(){
JFrame jfrmFindWindow = new JFrame("Znajdź osobę");
jfrmFindWindow.setLayout(new FlowLayout());
jfrmFindWindow.setSize(150, 250);
readDB();
//Tworzenie listy
jlistOfPeople = new JList<String>(jpeople);
jlistOfPeople.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //pojedyncze zaznaczenie
//pasek przewijania
jscroll = new JScrollPane(jlistOfPeople);
jfrmFindWindow.setVisible(true);
//sluchacz
jlistOfPeople.addListSelectionListener(this);
}
@Override
public void valueChanged(ListSelectionEvent le) {
// TODO Auto-generated method stub
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at giecmarcin.FindWindow.readDB(FindWindow.java:24)
at giecmarcin.FindWindow.<init>(FindWindow.java:38)
at giecmarcin.SWindow$3.run(SWindow.java:73)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand().equals("Dodaj osobę")){
//Tworzy ramkę w watku rodzialu zdarzen
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
new EditionWindow();
}
});
}
else if(e.getActionCommand().equals("Usuń osobę")){
}
else if(e.getActionCommand().equals("Pokaż osoby")){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
new ShowWindow();
}
});
}
else if(e.getActionCommand().equals("Znajdź osobę")){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
new FindWindow();
}
});
}
}