Check is extremely simple actually. If any piece can currently move to the king's position, then the king is in check. Since you already have to implement the ability to allow players to move any given piece to any square (that their piece can move to), deciding if those pieces can be moved to the king's square should be trivial.
For checkmate, it is a little harder, but first decide whether the king can move his piece to a square that puts him out of check (by temporarily 'pretending' the king is at a different square, and seeing if he is in check still, and doing that for every square around him). If he can't, it still might not be checkmate. So now you have to see if there is any piece that can either be moved to a square that blocks the 'check' or that can take the piece that is causing the checkmate.
I suggest you make high usage of the "write a method that does one thing and one thing only" principle. Don't write spaghetti code because that could get you into a world of trouble here.
I actually might write a chess game in Swing when I get a chance just for the heck of it.