“It is a frightening warning and a last call to all competent institutions to do more to prevent violence in society,” President Milanovic wrote in a social media post.
Prime Minister Andrej Plenkovic called it a “monstrous attack” and expressed his condolences to those affected.
Croatian authorities have given no motive for the massacre.
Marin Piletic, Croatia’s minister for Labour, Pensions, Families and Social Policy, said the mother of the suspect had been a resident of the care home for 10 years.
Unconfirmed reports by local media say the man was a war veteran.
He also had a previous record for disturbing public order and domestic abuse, according to Croatian national police chief Nikola Milina.
“I was stacking the medicines and then I heard gunshots,” a shocked employee of the nursing home told state broadcaster HRT.
“We hid under a bed, the boss escaped through the window and then (we fled) through the window to the bookstore.”
The killings have left the 7,000 residents of the quiet spa town of Daruvar in shock.
“It’s hard for me to understand that this can happen in our town, country,” mayor Damir Lnenicek told Croatian broadcaster N1.
Around 20 people lived in the nursing home at the time of the shooting, according to Mr Lnenicek.
Mass shootings in Croatia are rare.
Monday’s massacre was among the worst in the country’s history since it declared independence in 1991.
According to the 2017 Small Arms Survey, Croatia has 13.2 guns per 100 people, placing it 25th in Europe in terms of gun ownership.
Last year, two mass shootings in neighbouring Serbia left more than 18 people dead and led many Serbs to hand in thousands of registered and unregistered weapons as part of a government amnesty.