Removing last item inside JList
Hi all,
I am currently developing a java application that uses a JList. The
application will read in a file and then populate the data inside the
file into the JList. Then the user is able to select one item or
multiple items inside the JList and then press the delete button which
removes the item from the JList and then repopulates the file with the
existing data. This method works fine until there is only time inside
the JList. The user presses the one remaining item and then presses
the delete button. The item is removed from the JList and then a large
error appears and does not continue the program to rewrite the file,
therefore leaving the the record in the file.
The error message that is displayed is below:
Exception occurred during event dispatching:
java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)
at
remoteshutdown.ExceptionsList.btnDelete_actionPerformed(ExceptionsList.java:
233)
at
remoteshutdown.ExceptionsList_btnDelete_actionAdapter.actionPerformed(ExceptionsList.java:
279)
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.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.Dialog$1.run(Unknown Source)
at java.awt.Dialog$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at
remoteshutdown.mainScreen.jMenuOptionsExceptions_actionPerformed(mainScreen.java:
979)
at remoteshutdown.mainScreen
$mainScreen_jMenuOptionsExceptions_ActionAdapter.actionPerformed(mainScreen.java:
1145)
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.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI
$Handler.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.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)
The code that I am using to perform this task is below:
public void btnDelete_actionPerformed(ActionEvent e) {
this.lstComputerExceptions.getModel();
if (lstComputerExceptions.getSelectedIndices().length > 0) {
int[] tmp = this.lstComputerExceptions.getSelectedIndices();
int[] selectedIndicies =
lstComputerExceptions.getSelectedIndices();
for (int i = tmp.length - 1; i >= 0; i--) {
selectedIndicies = lstComputerExceptions.getSelectedIndices();
model.removeElementAt(selectedIndicies[i]);
}
String computerName = model.toString();
StringTokenizer st = new StringTokenizer(computerName, "[]");
// if (computerName != null) {
/*} else {*/
String tokenizedString = st.nextToken();
String newComputers = tokenizedString.replace(",", "\n");
System.out.println(newComputers);
try {
BufferedWriter out = new BufferedWriter(
new FileWriter(
"C:\\Documents and Settings\\All Users\\Application Data\
\Remote Shutdown\\ExceptionsList.csv",
false));
out.write(newComputers);
out.write("\n");
out.close();
} catch (IOException ex) {
statusBar.setForeground(Color.red);
statusBar
.setText("Failed to modify file. Please ensure the file is not
open");
System.err.println("Unable to delete: " + ex.toString());
}
}
}
Any help in this matter would be highly appreciated. Thank you