Shouldn't be the cause of your problem, but don't extend JComboBox. You only extend a class to add new functionality. Adding data or setting properties is not adding new functionality.
A renderer is shared by all items. I don't see where you ever set the text of the label when you add a String to the combo box. Not sure if this causes the problem or not.
I would suggest you extend BasicComboBox as it will set all the properties of the renderer and then simply invoke toString() on any object you add to the combo box to get the text to display. Then you can check if a Grade object has been added and reset the text.
So the basic logic might be something like:
Also, note that when you use a custom renderer you will break the functionality of the combo box since selection of an item from the combo box using the keyboard will not work. In this case it will not be a big issue since all your items start with the same string.
Note: you could just simply implement the toString() method of your Grade class to return the grade and then you don't need a custom renderer. Although many people will say you should use the toString() method as data for your application.
But for future reference you may want to check out Combo Box With Custom Renderer
for a more complete solution.
If you need more help then post a SSCCE that demonstrates the problem.