Hallo
Das Programm lief bisher. Ich hab bisl was optimiert und plötzlich bekomm ich ne 0 Point Exeption in nem Bereich den ich nicht angefasst hab. Hab geschaut ob ich irgend ne Variable nicht initialisiert hab aber ich find den Grund nicht. Kann bitte wer helfen?
Hier die Exeption:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Fenster$Listener_Ordner.actionPerformed(Fenster.java:182)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Das Programm lief bisher. Ich hab bisl was optimiert und plötzlich bekomm ich ne 0 Point Exeption in nem Bereich den ich nicht angefasst hab. Hab geschaut ob ich irgend ne Variable nicht initialisiert hab aber ich find den Grund nicht. Kann bitte wer helfen?
Hier die Exeption:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Fenster$Listener_Ordner.actionPerformed(Fenster.java:182)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Java:
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
@SuppressWarnings("serial")
public class Fenster extends JFrame{
JFrame GUI = new JFrame();
JButton B1 = new JButton("Erzeuge UPD File");
JButton B2 = new JButton("Öffne UPD File");
JButton IB = new JButton("Ausgabeordner");
public JLabel IL = new JLabel();
Border border = BorderFactory.createLineBorder(Color.black, 1);
JFileChooser FC = new JFileChooser("Verzeichnis wählen");
private int jIval;
private int listLength = 10;
public File[] dirList = new File[listLength+1];
public ArrayList<JImport> oButtons = new ArrayList<JImport>();
public int getjIval(){
return jIval;
}
public int getlistLength(){
return listLength;
}
public Fenster(){
GUI.setSize(560, 30*listLength+120);
GUI.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GUI.setLocationRelativeTo(null);
GUI.setTitle("ConfigMerger");
GUI.setLayout(null);
GUI.setResizable(false);
GUI.add(B1);
GUI.add(B2);
GUI.add(IB);
GUI.add(IL);
B1.setBounds(140, 50+30*listLength, 130, 25);
B1.setVisible(true);
B1.setToolTipText("UPD File schreiben");
// B1.addActionListener(new Listener_merge(dirList));
B1.setEnabled(false);
B2.setBounds(290, 50+30*listLength, 130, 25);
B2.setVisible(true);
B2.setToolTipText("UPD File anzeigen");
// B2.addActionListener(new Listener()); //TODO
B2.setEnabled(false);
for(this.jIval = 0; this.jIval != this.listLength + 1; this.jIval++ ){
String Name;
if(jIval == 0) Name = "Ausgabeordner";
else Name = "Seite " + String.valueOf(jIval);
oButtons.add( new JImport(jIval, Name));
}
GUI.setVisible(true);
}
public class JImport extends JFrame{
int jIval = getjIval();
public JImport( int jIval, String Name){
JButton IB = new JButton(Name);
JLabel IL = new JLabel();
this.jIval = jIval;
IB.setBounds(30, 10+30*jIval, 130, 20);
IB.setVisible(true);
IB.addActionListener(new Listener_Ordner(jIval));
GUI.add(IB);
IL.setVisible(true);
IL.setBounds(170, 10+30*jIval, 350, 20);
IL.setBorder(border);
GUI.add(IL);
getjIval();
getIL();
}
public JLabel getIL(){
return IL;
}
}
// public class Listener_merge implements ActionListener{
//
// Einlesen start;
// Ausgeben metupd;
// Ausgeben usrupd;
// int a = listLength + 1;
// File[] dirList;
//
// public Listener_merge(File[] dirList) {
// this.dirList = dirList;
// }
//
// @Override
// public void actionPerformed(ActionEvent arg0) {
// Read();
// Write();
// B2.setEnabled(true);
// }
//
// public void Read(){
// for(int i=1; i != a; i++){
// if(dirList[i].isDirectory()){
//
// Einlesen start = new Einlesen(dirList[i]);
// this.start = start;
// }
//
// }
// }
//
// public void Write(){
// Ausgeben metupd = new Ausgeben(start.getDcstfmet().upd, "dcstfmet.upd");
// this.metupd = metupd;
// Ausgeben usrupd = new Ausgeben(start.getDcstfusr().upd, "dcstfusr.upd");
// this.usrupd = usrupd;
// }
//
// }
public class Listener_Ordner implements ActionListener{
int jIval = getjIval();
File[] dirList;
public Listener_Ordner(int jIval){
this.jIval = jIval;
}
public File[] getdirList(){
return dirList;
}
@Override
public void actionPerformed(ActionEvent arg0) {
FC.setDialogType(JFileChooser.OPEN_DIALOG);
FC.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int x = FC.showOpenDialog(null);
if(x == JFileChooser.APPROVE_OPTION){
this.dirList[this.jIval]=FC.getSelectedFile();
for (int a=0; a < listLength+1; a++){
if(dirList[a].isDirectory()){
oButtons.get(a).getIL().setBounds(170, 10+30*a, 350, 20);
oButtons.get(a).getIL().setText(" " + String.valueOf(dirList[a]));
oButtons.get(a).getIL().setVisible(true);
}
}
if(dirList[0].isDirectory() & dirList[jIval].isDirectory() & jIval != 0){
B1.setEnabled(true);
}
}
getdirList();
}
}
}