I noticed that my app's icon in the native alt-tab window switcher was a badly scaled-down version of the icon I had supplied. Then I learned about Window#setIconImages(...). I created some icons of alternating black and white 1-pixel lines so it's evident if they've been scaled down (the icon becomes gray). The code below solved my problem with the window switcher; it uses the 32x32 icon at its native size (I can tell by counting the lines). But the icon in my task bar is still scaled down, even though it's 16x16 (I measured in a screenshot) and I have supplied a 16x16 icon. I'm guessing my task bar is obtaining a larger icon and scaling it down, so there's probably nothing I can do about it. Right? Or am I doing something wrong in my use of setIconImages(...)?

Java Code:
ImageIcon icon16 = new ImageIcon(getClass().getResource("/lines16.png"));
ImageIcon icon24 = new ImageIcon(getClass().getResource("/lines24.png"));
ImageIcon icon32 = new ImageIcon(getClass().getResource("/lines32.png"));
List<Image> icons = new LinkedList<Image>();
icons.add(icon16.getImage());
icons.add(icon24.getImage());
icons.add(icon32.getImage());
mainWindow.setIconImages(icons);