Thanks to @gthanop and @Abra for providing the answer, I'll summarize it here quickly:
You can call Image.getScaledInstance(width, height, hint) to get a resized version of the image. However, if you provide it with Image.SCALE_SMOOTH for the hint argument, the image will be scaled down in a way that it keeps its "smoothness."