title: java.lang.NoSuchMethodError: main
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/5407250/causes-of-java-lang-nosuchmethoderror-main-exception-in-thread-main">Causes of &#39;java.lang.NoSuchMethodError: main Exception in thread &ldquo;main&rdquo;&#39;</a>  </p>
  </blockquote>
  
  
  
  <p>I'm getting the following error:</p>
  
  <p>java.lang.NoSuchMethodError: main
  Exception in thread "main" </p>
  
  <pre><code>import java.awt.*;
  import javax.swing.*;
  import java.awt.event.*;
  import java.util.*;
  import java.io.*;
  
  public class SwimCalc extends JFrame implements ActionListener {
     private JTabbedPane jtabbedPane;
     private JPanel Customers;
  
     JTextArea NameTextCustomers, ExistTextCustomers, NameTextContractors,
           ExistTextContractors;
  
     public SwimCalc() {
        setTitle("Volume Calculator");
        setSize(300, 200);
  
        JPanel topPanel = new JPanel();
        topPanel.setLayout(new BorderLayout());
        getContentPane().add(topPanel);
  
        createCustomers();
  
        jtabbedPane = new JTabbedPane();
        jtabbedPane.addTab("Customers", Customers);
        topPanel.add(jtabbedPane, BorderLayout.CENTER);
     }
  
     /* CREATE CUSTOMERS */
  
     public JPanel createCustomers() {
        Customers = new JPanel();
        Customers.setLayout(null);
  
        NameTextCustomers = new JTextArea();
        NameTextCustomers.setBounds(10, 10, 350, 150);
        NameTextCustomers.setLineWrap(true);
        Customers.add(NameTextCustomers);
  
        JButton Exit = new JButton("Exit");
        Exit.setBounds(30, 170, 80, 20);
        Exit.addActionListener(this);
        Exit.setBackground(Color.white);
        Customers.add(Exit);
  
        JButton AddCustomers = new JButton("Add Customer");
        AddCustomers.setBounds(130, 170, 120, 20);
        AddCustomers.setBackground(Color.white);
        Customers.add(AddCustomers);
  
        JButton Refresh = new JButton("Refresh");
        Refresh.setBounds(260, 170, 80, 20);
        Refresh.setBackground(Color.white);
        Customers.add(Refresh);
  
        ExistTextCustomers = new JTextArea();
        ExistTextCustomers.setBounds(10, 200, 350, 60);
        ExistTextCustomers.setLineWrap(true);
        Customers.add(ExistTextCustomers);
  
        final JTextArea custArea = new JTextArea(6, 30);
        final JTextArea custMessage = null;
  
        AddCustomers.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              new Customer("Customer");
           }
        });
        Customers.add(custArea);
        Customers.add(AddCustomers);
  
        Customers.add(Refresh);
        Customers.add(custMessage);
        Refresh.setMnemonic('R');
  
        Refresh.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              custMessage.setText("");
              try {
                 File custOpen = new File("customer.txt");
                 FileReader custAreaIn = new FileReader(custOpen);
                 custArea.read(custAreaIn, custOpen.toString());
                 custMessage.setText("The file exists and can be read from.");
              } catch (IOException e3) {
                 custMessage.setText("The file could not be read. "
                       + e3.getMessage());
              }
           }
        });
        return Customers;
     }
  
     class Customer extends JFrame {
        private String[] states = { "AL", "AK", "AZ", "AR", "CA", "CO", "CT",
              "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA",
              "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH",
              "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC",
              "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY" };
        private JComboBox StateList = new JComboBox(states);
        private JTextField NameText = new JTextField(25);
        private JTextField AddressText = new JTextField(25);
        private JTextField CityText = new JTextField(25);
        private JTextField ZipText = new JTextField(9);
        private JTextField PhoneText = new JTextField(10);
        private JTextField PopMessageText = new JTextField(30);
        private static final long serialVersionUID = 1L;
  
        private AddCustButtonHandler addCusHandler = new AddCustButtonHandler();
  
        public Customer(String who) {
           popUpWindow(who);
        }
  
        public void popUpWindow(final String who) {
  
           final JFrame popWindow;
           popWindow = new JFrame(who);
           popWindow.setSize(425, 350);
           popWindow.setLocation(100, 100);
           popWindow.setVisible(true);
           setDefaultCloseOperation(EXIT_ON_CLOSE);
  
           Container c = new Container();
  
           popWindow.add(c);
  
           c.setLayout(new FlowLayout());
  
           JPanel one = new JPanel();
           JPanel two = new JPanel();
           JPanel three = new JPanel();
           JPanel four = new JPanel();
           JPanel five = new JPanel();
           JPanel six = new JPanel();
  
           one.add(new JLabel(who + " Name "));
           one.add(NameText);
           two.add(new JLabel("Address "));
           two.add(AddressText);
           three.add(new JLabel("City "));
           three.add(CityText);
           four.add(new JLabel("State "));
           StateList.setSelectedIndex(0);
           four.add(StateList);
           four.add(new JLabel("ZIP"));
           four.add(ZipText);
           four.add(new JLabel("Phone"));
           four.add(PhoneText);
           JButton addwho = new JButton("Add " + who);
           addwho.setMnemonic('A');
           JButton close = new JButton("Close");
           close.setMnemonic('C');
           JButton deleteFile = new JButton("Delete File");
           deleteFile.setMnemonic('D');
           five.add(addwho);
           five.add(close);
           five.add(deleteFile);
           PopMessageText.setEditable(false);
           PopMessageText.setHorizontalAlignment(JTextField.CENTER);
  
           six.add(PopMessageText);
           c.add(one);
           c.add(two);
           c.add(three);
           c.add(four);
           c.add(five);
           c.add(six);
  
           deleteFile.setToolTipText("Delete File");
           addwho.setToolTipText("Add " + who);
           close.setToolTipText("Close");
  
           if (who == "Customer")
              addwho.addActionListener(addCusHandler);
           close.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                 NameText.setText("");
                 AddressText.setText("");
                 CityText.setText("");
                 ZipText.setText("");
                 PhoneText.setText("");
                 PopMessageText.setText("");
                 popWindow.dispose();
              }
           });
           deleteFile.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                 PopMessageText.setText("");
                 if (who == "Customer") {
                    File file = new File("Customer.txt");
                    boolean cusFileDeleted = file.delete();
                    if (cusFileDeleted) {
                       PopMessageText.setText("Customer file has been deleted");
                    } else {
                       PopMessageText
                             .setText("There was an erron in deleting file");
                    }
                 }
              }
           });
        }
  
        class AddCustButtonHandler implements ActionListener {
           public void actionPerformed(ActionEvent addCusHandler) {
              int StateIndex;
              try {
                 File file = new File("Customer.txt");
  
                 boolean success = file.createNewFile();
  
                 if (success) {
                    PopMessageText
                          .setText("Customer.txt file created file added");
                 } else if (file.canWrite()) {
                    PopMessageText
                          .setText("Writing data to Customer.txt, file added");
                 } else {
                    PopMessageText.setText("Cannot create file: Customer.txt");
                 }
                 try {
                    FileWriter fileW = new FileWriter("Customer.txt", true);
                    fileW.write(NameText.getText());
                    fileW.write(",");
                    fileW.write(AddressText.getText());
                    fileW.write(",");
                    fileW.write(CityText.getText());
                    fileW.write(",");
                    StateIndex = StateList.getSelectedIndex();
                    fileW.write(states[StateIndex]);
                    fileW.write(",");
                    fileW.write(ZipText.getText());
                    fileW.write(",");
                    fileW.write(PhoneText.getText());
                    fileW.write("\r\n");
                    fileW.close();
                    PopMessageText.setText("A new Customer has been added!");
  
                    FileReader fileR = new FileReader("Customer.txt");
                    BufferedReader buffIn = new BufferedReader(fileR);
  
                    String textData = buffIn.readLine();
                    buffIn.close();
                 } catch (IOException e1) {
                    JOptionPane.showMessageDialog(null, e1.getMessage(), "ERROR",
                          2);
                 }
                 NameText.setText("");
                 AddressText.setText("");
                 CityText.setText("");
                 ZipText.setText("");
                 PhoneText.setText("");
              } catch (IOException e1) {
              }
  
           }
        }
  
        public void actionPerformed(ActionEvent event) {
        }
  
        private void Exit_pressed() {
           System.exit(0);
        }
  
        public void main(String[] args) {
           JFrame frame = new SwimCalc();
           frame.setSize(380, 350);
           frame.setVisible(true);
        }
     }
  
     public void actionPerformed(ActionEvent e) {
  
     }
  }
  </code></pre>
  
  <p>The error:</p>
  
  <p>java.lang.NoSuchMethodError: main
  Exception in thread "main" </p>
  
  <pre><code>public void actionPerformed(ActionEvent e) {
  
      }
      public static void main(String[] args){
          JFrame frame = new SwimCalc();
          frame.setSize(380, 350);
          frame.setVisible(true);
          }
      }
  </code></pre>