Another modelling tool for Java is (my) website GitUML. Generate UML diagrams from Java or Python code stored in GitHub repositories.
One key idea with GitUML is to address one of the problems with "documentation": that diagrams are always out of date. With GitUML, diagrams automatically update when you push code using git.
Browse through community UML diagrams, there are some Java design patterns there. Surf through popular GitHub repositories and visualise the architectures and patterns in them.
Create diagrams using point and click. There is no drag drop editor, just click on the classes in the repository tree that you want to visualise:
The underlying technology is PlantUML based, which means you can refine your diagrams with additional PlantUML markup.