Traveling directly from Barcelona to Granada means crossing almost the entire country and involves missing many of Spain's best sights, namely Madrid and its day trips (Toledo, Segovia, etc). The best way to travel from Barcelona to Granada is to go via Madrid and spend a few days there. There are plenty of guided tours that cover southern Spain from Barcelona.
If this isn't an option, then flying or the night train are your best bets.
There are usually good cheap flights if you look far enough in advance, but a night train saves you from spending extra cash on a hotel, and it's fun!
By Guided Tour
It's a long way from Barcelona to Granada. You might prefer to take a guided tour than to go by your own steam. You can take a tour that goes from Barcelona to Granada and back again, at the same time taking in the other two stars of Andalusia—Seville and Cordoba.
There are frequent flights from Barcelona to Granada and they could save you a lot of time and money, especially if booked well in advance. This is also the fastest travel option to get to Granada.
The train from Granada to Barcelona takes about 11 hours and costs around 50 euros, including bed (this is a night train). Trains from Barcelona to Granada depart from Barcelona Sants station. Rail Europe is the most popular place to book train tickets, as the company connects stations around the continent and has many routes through Spain.
The bus from Barcelona to Granada takes 13 hours and costs about 70 euros. Buses from Barcelona to Granada depart from both Sants and Nord bus stations.
You can book most bus tickets in Spain online at no extra charge. Just pay with a credit card and print out the e-ticket.
The 900 km drive from Barcelona to Granada takes about eight hours, traveling mainly on the AP-7 and A-92. Consider a stop at Valencia or Murcia on your way. Note: AP roads are toll roads. A slightly longer possible route is to go via Madrid. Car rentals aren't terribly expensive in Spain, so this is a fun option if you want to make a road trip out of it and see some of Spain's countryside along the way.