Apparently, the setOpaque method on JPanels was causing some performance issues on the client, the original reason I had these was so that the base panel would have a color defined, and every container or wrapper panel on top would just be transparent. To fix this I have set a default JPanel background color and replaced calls to setOpaque with calls to setBackground with the appropriate colors.