Ich bin mir nicht sicher aber kann es sein daß ich in folgendem Codeblock eine Exception Behandlung brauche?
Wenn ich das programm laufen lasse kommen folgende Hinweise, was aber nicht sein kann. Der String der zerlegt werden soll ist nicht null.
java.lang.NullPointerException
at java.util.StringTokenizer.<init>(StringTokenizer.java:146)
at java.util.StringTokenizer.<init>(StringTokenizer.java:162)
at datasetparser.parseFrame.parse(parseFrame.java:298)
at datasetparser.parseFrame.actionPerformed(parseFrame.java:235)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
und wenn ich Debugge kommt auf einmal so ein Reiter wo drauf steht EventDispatchThread und der Cursor steht bei diesem Block
synchronized (theQueue) {
theQueue.detachDispatchThread();
/*
* Event dispatch thread dies in case of an uncaught exception.
* A new event dispatch thread for this queue will be started
* only if a new event is posted to it. In case if no more
* events are posted after this thread died all events that
* currently are in the queue will never be dispatched.
*/
/*
* Fix for 4648733. Check both the associated java event
* queue and the PostEventQueue.
*/
if (theQueue.peekEvent() != null ||
!SunToolkit.isPostEventQueueEmpty()) {
theQueue.initDispatchThread();
}
AWTAutoShutdown.getInstance().notifyThreadFree(this);
}
Code:
StringTokenizer tokenizer1 = new StringTokenizer(text, "\n");
while (tokenizer1.hasMoreTokens()) {
String token = tokenizer1.nextToken();
StringTokenizer tokenizer2 = new StringTokenizer(token, delimiter);
i=0;
while (tokenizer2.hasMoreTokens()) {
String token2 = tokenizer2.nextToken();
if(jComboBoxC1[i].getSelectedIndex()==1)
token2 = token2.toUpperCase();
if(jComboBoxC1[i].getSelectedIndex()==2)
token2 = token2.toLowerCase();
if(jTextFieldRo[i].getText()!=""){
if(jComboBoxC2[i].getSelectedIndex()==0)
token2 = token2.replaceFirst(jTextFieldRo[i].getText(),jTextFieldRw[i].getText());
if(jComboBoxC2[i].getSelectedIndex()==1)
token2 = token2.replaceAll(jTextFieldRo[i].getText(),jTextFieldRw[i].getText());
}
desire[i] = token2+outputdel;
i++;
}
for(i=0;i<k.length;i++)
buffer[i]=desire[index[i]];
list = Arrays.asList(buffer);
if(jTinstringout.getText()!="")
list.add(Integer.parseInt(jTinstringout.getText()),jLinstring.getText());
/* else
list.remove(k.length+1);*/
output += list+"\n";
}
exchanger.write(exchanger.getFile(),output);
Wenn ich das programm laufen lasse kommen folgende Hinweise, was aber nicht sein kann. Der String der zerlegt werden soll ist nicht null.
java.lang.NullPointerException
at java.util.StringTokenizer.<init>(StringTokenizer.java:146)
at java.util.StringTokenizer.<init>(StringTokenizer.java:162)
at datasetparser.parseFrame.parse(parseFrame.java:298)
at datasetparser.parseFrame.actionPerformed(parseFrame.java:235)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
und wenn ich Debugge kommt auf einmal so ein Reiter wo drauf steht EventDispatchThread und der Cursor steht bei diesem Block
synchronized (theQueue) {
theQueue.detachDispatchThread();
/*
* Event dispatch thread dies in case of an uncaught exception.
* A new event dispatch thread for this queue will be started
* only if a new event is posted to it. In case if no more
* events are posted after this thread died all events that
* currently are in the queue will never be dispatched.
*/
/*
* Fix for 4648733. Check both the associated java event
* queue and the PostEventQueue.
*/
if (theQueue.peekEvent() != null ||
!SunToolkit.isPostEventQueueEmpty()) {
theQueue.initDispatchThread();
}
AWTAutoShutdown.getInstance().notifyThreadFree(this);
}