The state space explosion restricts the error detection of concurrent software. The abstraction can provide a solution to avoid state space explosion, but it is easy to ignore important details, resulting in inaccurate detection results. This paper proposes a methodology of fine-coarse-grained automatic modelling for Java source programs. By the principle that the execution details of property-unchecked, non-interactive, and unrelated statements do not affect the model checking results, we model coarse-grained model fragments for such statements, while fine-grained model fragments for property-checked, interactive, and related statements. Our method reduces the model and state space and ensures the error detection of the source program based on model checking. Moreover, we prove the equivalence of the fine-grained model, the coarse-grained model, and the program. Finally, this paper gives an experiment to verify the effectiveness of the proposed method.