Мне это кажется рискованным:
Graphics g = combinedImage.getGraphics(); // Graphics object #1
combinedImage.createGraphics().setBackground(Color.white); // Graphics object #2
// so now you've set the background color for the second Graphics object only
g.clearRect(0,0, 486, 151); // but clear the rect in the first Graphics object
g.drawImage(partNumberImage, x, 18, null);
g.drawImage(lotNumberImage, x, 48, null);
g.drawImage(dteImage, x, 58, null);
g.drawImage(quantityImage, x, 68, null);
Мне кажется, вы можете создавать два совершенно разных объекта Graphics, один объект Graphics2D и один объект Graphics.И пока вы устанавливаете цвет фона в объекте Graphics2D, вы очищаете прямоугольник в объекте Graphics, чтобы он мог объяснить, почему ваш фон не белый.Почему бы вместо этого просто создать один объект Graphics2D и использовать его для всего:
Graphics2D g = combinedImage.createGraphics();
g.setBackground(Color.white);
// Now there is only one Graphics object, and its background has been set
g.clearRect(0,0, 486, 151); // This now uses the correct background color
g.drawImage(partNumberImage, x, 18, null);
g.drawImage(lotNumberImage, x, 48, null);
g.drawImage(dteImage, x, 58, null);
g.drawImage(quantityImage, x, 68, null);