You can get a train to JB from KL central train station. The train will go through numerous villages and rural part of Malaysia. It is slower than the coaches.
For more information, check out www.ktmb.com.my.
There are many coaches that depart from Puduraya coach station in central of KL. It is a crowded place but there are numerous coach service daily to JB, about one every half hour throughout the day. You can go to the station and get your tickets on the spot, but not during the school holidays. All these coaches will take the North South Highway to zoom you to JB in 4 hours. There are super VIP, VIP, normal coach to choose from. Usually for the comfort, I will choose the super VIP coaches. The coaches will end at Larkin - JB main bus station. And also JB's central market.
Another option is to take PLUSLiner from the central train station in KL. For this, you should make prior reservation. This coach company also has coaches direct from KL to Singapore via the second link.
You can get to JB from Singapore on the train. The train station that you can board is at Tanjung Pagar. To get to the train station, take an MRT to Tanjung Pagar, then walk from there.
You can also catch the train to Kuala Lumpur or other places in Malaysia from Tanjung Pagar.
At the train station, you will have to go through the Malaysian immigration and custom at Tanjung Pagar. Then, the train will proceed to the immigration at Woodlands (Singapore side). Then to JB train station. You might find it confusing or weird, but that's the system.
I will not suggest taking the train to JB cos it is faster by the public bus. I tried once, but never again.
To check out the prices and schedule, go to KTMB's website below.
You can get the bus from Queen Street, Singapore to JB. The SBS bus costs S$1.7 or another bus for S$2.4. The whole journey takes about 45 mins.