So currently I am attempting to make my first simple game in Java and I have begun dealing with GUI's. I've already planned exactly how I want the UI to look but I haven't really spent much time dealing with GUI's in java so I am a little lost. I don't understand if the GUI should be a separate entity from the logic or built in the same class. For example: I have a card class which holds a color and a value but is it better to code a separate class for only displaying and using the graphic to represent the card where its action listeners use the logic of my actual object Card class? Or do I just code both the GUI and the Logic into one class because then I have to extend JComponent and what not to my original card class.
Also I am really confused on how a professional looking GUI would look like coding wise? Like the game League of Legends the client was coded in Java and the Frame isn't even the native Windows frame. Are the buttons and frames and what not all custom pictures coded to be like buttons or are the components extending JComponent, etc? I know a lot about the logic of programming java as I am in AP Computer Science but the class is really basic for GUI's for what I would like to accomplish and I can't find anywhere on Google to learn professional techniques and practices.
I currently use the Netbeans IDE