Graphics2D.drawString() を使用して、Graphics2d でさまざまな文字列を描画しています。これは問題なく動作しますが、文字列の背景色を変更できないようです。レンダリング時には、常に最初の (この場合は白の) 背景色が使用されます。
フォントの境界ボックスを取得し、フォントのベースラインの位置と高さから浚渫された場所にそのサイズに基づいて塗りつぶされた長方形を描画することで、この効果をシミュレートできますが、これは不快であり、少なくとも私の場合は正しくありません-配置テキストに対する塗りつぶされた四角形の高さがわずかに高すぎます。
drawString() 呼び出しの前に g2d.setBackground(color) を呼び出すことはできませんか?