The boy was identified as Cade Poulos, 13, The Oklahoman reported. He apparently brought a handgun to Stillwater Junior High School.
While some students suggested Poulos had been bullied, Anne Caine, the Stillwater school superintendent, said there had been no complaints from him or his family. Caine described him at a news conference as a good student who smiled often.
One student told the Stillwater NewsPress that the hallway was crowded when Cade put the gun to his head. He said he was one of the many witnesses.
"I saw him on the ground," Aaron Veselak said. "There was blood all around his head."
A school resource officer responded after hearing the shot.
"Everyone thought it was a joke at first," ninth-grader Ashlyn Lundholm said. "Then I heard people screaming. Then we went to lockdown for 35 to 40 minutes."
The shooting occurred at 7:50 a.m., about 10 minutes before the start of the school day. Classes were canceled.