line 161 is my problem. its probably very obvious, but i am extremely tired right now (less than 4 hours of rest in the last 38 hours..).
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.util.StringTokenizer;
import java.util.Arrays;
public class DL06GrocList
{
public static void main(String[] args) throws IOException
{
Toolkit toolKitVar = Toolkit.getDefaultToolkit();
Dimension windowDimVar = toolKitVar.getScreenSize();
DL06GrocListClass myWindow = new DL06GrocListClass();
mywindow.setSize(500,300);
mywindow.setLocation(windowDimVar.width/2-250,windowDimVar.height/2-150);
mywindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mywindow.setVisible(true);
}
}//end driver class
//==============================================================================
class DL06GrocListClass extends JFrame
{
JTextArea grocListTa; //fields
JButton itemBtnList[];//array of 8 item buttons
JButton sortBtn;
JButton writeBtn;
JButton clearBtn;
//----------------------------------------------------------------------------
public DL06GrocListClass() throws IOException //constructor
{
super("Grocery List - ");
setLayout(new BorderLayout(0,0)); //0,0 gaps
setUpNorth();
setUpWest(); //method calls
setUpCenter();
setUpSouth();
ItemBtnHandler itemBtnHdlr = new ItemBtnHandler();
for(int i=0;i<8;i++) //add 8 item buttons
itemBtnList[i].addActionListener(itemBtnHdlr); //to one handler
SortHandler sortHdlr = new SortHandler();
sortBtn.addActionListener(sortHdlr);
WriteHandler writeHdlr = new WriteHandler();
writeBtn.addActionListener(writeHdlr);
ClearHandler clearHdlr = new ClearHandler();
clearBtn.addActionListener(clearHdlr);
//code must be added for other handlers
}//end constructor
//----------------------------------------------------------------------------
private void setUpNorth() //method
{
JLabel dateLabel;
String date = P06StaticDateUtility.getAlphaDate();
dateLabel = new JLabel(date);
dateLabel.setHorizontalAlignment(JLabel.CENTER);
add(dateLabel,BorderLayout.NORTH);
}
//----------------------------------------------------------------------------
private void setUpWest() //method
{
FileReader diskIn;
BufferedReader fileIn;
String rec;
int i = 0;
itemBtnList = new JButton[8]; //array of JButton
JPanel westPanel = new JPanel();
westPanel.setLayout(new GridLayout(8,1));
try
{
diskIn = new FileReader("basicItems.txt"); //8 items for buttons
fileIn = new BufferedReader(diskIn);
while(i<8) //button list hard coded for 8 items only
{
rec = fileIn.readLine(); //read items for buttons
itemBtnList[i] = new JButton(rec); //create new button
westPanel.add(itemBtnList[i]); //add to container
i++;
}
}
catch(IOException e)
{
JOptionPane.showMessageDialog(null,"Unable to open input file");
System.exit(1); //shut down, application not usable
}
add(westPanel,BorderLayout.WEST);
}
//----------------------------------------------------------------------------
private void setUpCenter() //method
{
grocListTa = new JTextArea (); //the big area for the list
JScrollPane scrollp = new JScrollPane(grocListTa);
add(scrollp,BorderLayout.CENTER);
}
//----------------------------------------------------------------------------
private void setUpSouth() //method
{
sortBtn = new JButton("Sort");
writeBtn = new JButton("Write");
clearBtn = new JButton("Clear List");
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1,3));
buttonPanel.add(sortBtn);
buttonPanel.add(writeBtn);
buttonPanel.add(clearBtn);
add(buttonPanel,BorderLayout.SOUTH);
}
//=================== event handlers - inner classes =========================
private class ItemBtnHandler implements ActionListener //item buttons
{
public void actionPerformed(ActionEvent e)
{
String txtStr;
String btnTxt;
txtStr = grocListTa.getText(); //get current list
btnTxt = e.getActionCommand(); //get text from button
if(txtStr.length()==0)
txtStr = btnTxt; //start list
else
txtStr = txtStr + "\n" + btnTxt; //replace list
grocListTa.setText(txtStr);
}
}//end item button inner class
//----------------------------------------------------------------------------
private class SortHandler implements ActionListener //sort
{
public void actionPerformed(ActionEvent e)
{
//jtextarea to string
String textstr = grocListTa.getText();
//string to array
StringTokenizer stok = new StringTokenizer(textstr);
String[] temparray = new String [stok.countTokens()];
int x=0;
while(stok.hasMoreTokens())
{
temparray[x] = stok.nextToken();
//sort array
Arrays.sort(temparray);
//array to jtextarea
StringBuffer sortedlist = new StringBuffer();
if (temparray.length > 0)
{
sortedlist.append(temparray[0]);
for (int c=1; c<temparray.length; c++)
{
sortedlist.append(temparray[c]);
}
}
grocListTa.setText(sortedlist.toString());
x++;
}
//add code
}
}//end sort inner class
//----------------------------------------------------------------------------
private class WriteHandler implements ActionListener //write
{
public void actionPerformed(ActionEvent e)
{
FileWriter fw;
BufferedWriter bw;
String svar;
try
{
fw = new FileWriter("DL-groc-list.txt");
bw = new BufferedWriter(fw);
svar = grocListTa.getText();
bw.write(svar);
bw.close();
JOptionPane.showMessageDialog(null,"Write successful:\n\n" + svar);
}
catch(IOException x)
{
JOptionPane.showMessageDialog(null,"Output file error has occurred");
}
}
}//end write inner class
//----------------------------------------------------------------------------
private class ClearHandler implements ActionListener //clear
{
public void actionPerformed(ActionEvent e)
{
grocListTa.setText("");
//add code
}
}//end clear inner class
//----------------------------------------------------------------------------
}//end outter class (frame)
here is the output..
---------- Capture Output ---------- > "C:\Program Files (x86)\Java\jdk1.6.0_23\bin\java.exe" DL06GrocList Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at java.lang.String.compareTo(String.java:1167) at java.lang.String.compareTo(String.java:92) at java.util.Arrays.mergeSort(Arrays.java:1144) at java.util.Arrays.sort(Arrays.java:1079) at DL06GrocListClass$SortHandler.actionPerformed(DL06GrocList.java:161) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6267) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6032) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.window.dispatchEventImpl(window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) > Terminated with exit code 0.
thanks for your time and help

New Topic/Question
Reply



MultiQuote








|