Use the @Override
annotation on your paintComponent method for a rude surprise. This is why using this annotation is very helpful, since it will flag you at compile time if you are not overriding a method when you think that you should be.
Solution: never "paint" in a JFrame for many reasons. Instead do what the tutorials tell you to do -- paint in a JPanel or JComponent's paintComponent(...)
method. If you search this site you will find that we have told many folks here the same thing, and in fact I suggest that you do just that. I wouldn't be surprised if this question is closed as a duplicate since this is a fairly common question.
Note this won't "work" (and actually won't compile):
super.paintComponent(g); << Can't seem to get this to work.
for the same reason -- there is no super.paintComponent(g)
for a JFrame.
Also, regarding,
I have worked with paintComponent() before, but still can't seem to figure out what I am doing wrong.
But if you look at your prior code, you'll see that this method was never used directly in a JFrame, and nor should it.