title: Java GUI error - Type mismatch: cannot convert from String to double
body: <p>Line 100 <strong><em><code>cost = JOptionPane.showInputDialog("Cost");</code></em></strong> of the attached code is reporting the error "Type mismatch: cannot convert from String to double" - any suggestions what's causing this please?</p>
  
  <p>Basically it's a class that accesses another class 'BookShelf' and this line is part of the actioncommand that accesses the BookShelf class to return costofBookshelf</p>
  
  <pre><code>import java.awt.FlowLayout;
  import java.awt.Container;
  import java.awt.event.ActionEvent;
  import javax.swing.*;
  import java.awt.event.ActionListener; 
  import java.util.ArrayList;
  
  public class BookGUI extends JFrame implements ActionListener
  
  {
  
      //String addBook="";
      // public ArrayList&lt;Book&gt; books;
  
      Book books = new Book ("", "", 0, "", 0);
      Book book = new Book("", "", 0, "", 0);
      String title  = "";
      String author  = "";
      int year = 0;
      String publisher  = "";
      double cost = 0;
  
      public BookShelf bookShelf = new BookShelf();
      public static final int WIDTH = 300;
      public static final int HEIGHT = 200;
  
      //Creates &amp; displays a window of the class FlowLayoutDemo
      public static void main(String[] args)
      {
          BookGUI gui = new BookGUI( );
          gui.setVisible(true);
      }
  
     // public String getTitle()
     // {
      //    return title;
      //}
  
      public void setTitle(String title) //this is relevant
      {
          this.title = title;
      }
  
      public void setAuthor(String author) //this is relevant
      {
          this.author = author;
      }
  
      public void setYear(int year) //this is relevant
      {
          this.year = year;
      }
      public void setPublisher(String publisher) //this is relevant
      {
          this.publisher = publisher;
      }
  
      public void setCost(double cost) //this is relevant
      {
          this.cost = cost;
      }
  
      public BookGUI( )
      {
  
          setSize(WIDTH, HEIGHT);
          addWindowListener(new WindowDestroyer( ));
          setTitle("GUI Assignment");
          Container content = getContentPane( );
  
          content.setLayout(new FlowLayout());
  
          JButton button1 = new JButton("Title");
          content.add(button1);
          button1.addActionListener(this);
          //contentPane.add(button1);
  
          JButton button2 = new JButton("Cost of Bookshelf");
          content.add(button2);
          button2.addActionListener(this);
  
          JButton button3 = new JButton("Size of BookShelf");
          content.add(button3);
          button3.addActionListener(this);
  
          JButton button4 = new JButton("Add Book");
          content.add(button4);
          button4.addActionListener(this);     
  
      }
  
      public void actionPerformed(ActionEvent e)
      {
          if (e.getActionCommand().equals("Add Book"))
         //book = JOptionPane.showInputDialog("Add Book");
          {     //set up the book object with all the data passed in
          title = JOptionPane.showInputDialog("Title");
          author = JOptionPane.showInputDialog("Author");
          publisher = JOptionPane.showInputDialog("Publisher");
          ***cost = JOptionPane.showInputDialog("Cost");***
          book.setTitle(title);
          book.setAuthor(author);
          book.setPublisher(publisher);
          bookShelf.addBook(book);
  
          String message =  "The title of the book is :" + title + 
          "the Author of the Book is : " + author + " and it's published by " + publisher;
          JOptionPane.showMessageDialog(null, message, "Book Details", JOptionPane.PLAIN_MESSAGE);
          }
          else if (e.getActionCommand().equals("Size of BookShelf")) {
              int sizeOfBookShelf = bookShelf.sizeOfBookshelf();
              String message = "The book shelf has " + sizeOfBookShelf + " book(s)";
              JOptionPane.showMessageDialog(this, message);
          }
          else if (e.getActionCommand().equals("Cost of BookShelf")) 
          {
              double costOfBookshelf = bookShelf.costOfBookshelf();
              String message = "The book shelf value is " + costOfBookshelf + "Euro";
              JOptionPane.showMessageDialog(this, message);
          }
  
      }
  }
  </code></pre>