Hamlet has been described by various scholars as melancholy, bitter, brooding, cynical, indecisive, judgmental, harsh, dark, impulsive, and suicidal. Instead of trying to characterize Hamlet in the most theatrical, sensational, and dramatic frames of reference, let's look at Hamlet as a real person caught up in extraordinary circumstances—circumstances that might easily overwhelm any of us if we found ourselves in Hamlet's place.
Hamlet might well have been moping around the castle dressed in black, but does that necessarily make him "melancholy"?
QUEEN: Good Hamlet, cast thy nighted colour off . . . (1.2.70)
We learn that Hamlet is still wearing black mourning clothes, while everybody else is dressed up like they just came from a wedding.
QUEEN: . . . Do not for ever with thy vailed lids
Seek for thy noble father in the dust . . . (1.2.72–73)
Hamlet was walking around with his head down. So what? Maybe he was just thinking. Maybe he was thinking about his dead father. Maybe he was thinking about any number of things that had happened recently. Does that make him "melancholy"?
QUEEN: If it be,
Why seems it so particular with thee? (1.2.77–78)
"Seems" is the significant word here, and Shakespeare wants us to hear it three times in two lines—once spoken by Gertrude and twice by Hamlet—and he wants us to remember it.
HAMLET: Seems, madam! nay it is; I know not 'seems.' (1.2.79)
And just to be sure we got it, Shakespeare uses the word one more time:
HAMLET: . . . These indeed seem,
For they are actions that a man might play . . . (1.2.86–87)
Hamlet tells her that he's not acting sad. He says he is sad. Very sad.
HAMLET: . . . But I have that within which passeth show,
These but the trappings and the suits of woe. (1.2.88–89)
Instead of calling Hamlet "melancholy," let's call him "grieving."
Now, let's look at the claim that Hamlet is indecisive. As soon as we hear the Ghost's story, we want Hamlet to go out and kill Claudius right now. By this time in the play, Shakespeare has made sure that we're totally caught up in Hamlet's world, that we empathize with him, and that we want to see things put right for his sake.
Even though Hamlet doesn't like Claudius, doesn't trust him, resents him for marrying his mother so soon after his father's death, and already has a pretty good idea that Claudius killed his father, he still wants to be sure that what the Ghost tells him about Claudius being his murderer is actually true.
HAMLET: . . . The spirit that I have seen
May be a devil; and the devil hath power
T' assume a pleasing shape; yea, and perhaps
Out of my weakness and my melancholy,
As he is very potent with such spirits,
Abuses me to damn me. I'll have grounds
More relative than this . . . (2.2.593–500)
So Hamlet arranges for the play-within-the-play to make sure what the Ghost said was true.
Instead of calling Hamlet "indecisive," let's call him "cautious," "careful," or even "reasonable."
Hamlet also had a perfect opportunity to kill Claudius while Claudius was on his knees praying, but Hamlet didn't do it. Was he being "indecisive" and making up excuses for not killing him, or was he thinking this through more carefully than we might in the same situation?
Was he being "indecisive," or was he being "prudent" under the circumstances and current state of affairs in Denmark? Was he thinking about the best way to fulfill his promise to his father about avenging his murder? If Hamlet killed Claudius right then, Claudius would have gone to heaven, he believed. That really wouldn't have avenged his father's murder very well.
Finally, let's think about the claim that Hamlet is suicidal. Just because Hamlet thinks about life, death, and the afterlife (and muses about suicide), does that necessarily mean that he is suicidal? We could argue that he's just pondering the meaning of it all.
Hamlet also does impulsive things. Does that mean he has a death wish? Sometimes Hamlet is just acting out on purpose, putting "an antic disposition on." When is he acting, and when is he serious, and what is his motivation in each instance?
Notably, Hamlet had the opportunity to kill himself at any time during the play, but for whatever reason, he doesn't even try to kill himself. He just thinks about it and talks about it.
Instead of characterizing Hamlet as "suicidal" just because he thinks about suicide, let's call him "contemplative," "thoughtful," or "introspective."
Each of Hamlet's stereotypical negative character traits can easily be recast as a positive trait, and this does not make Hamlet be a less fascinating or less enigmatic character. There's no need to make Hamlet more dramatic than Shakespeare wrote him. He's quite dramatic enough as he is.
The key to discovering Hamlet's character traits is to look at Hamlet in the immediate and overall context of the play, to look at what he says and does from moment to moment, and to avoid putting Hamlet into neatly defined categories, particularly those categories which conform to preconceived notions of who we or someone else thinks Hamlet is.