Graphics 提供兩種繪圖模式:預設覆蓋模式(setPaintMode())與 XOR 模式(setXORMode(Color c))。XOR 模式下,新繪製顏色與現有像素顏色進行 XOR 運算,常用於橡皮筋選框、暫時性高亮繪製,重繪相同圖形可擦除。
Graphics2D g2d = (Graphics2D) g;
g2d.setXORMode(Color.RED); // 設置 XOR 顏色
g2d.setColor(Color.GREEN);
g2d.fillRect(20, 20, 80, 40); // 實際顏色 = GREEN XOR 背景
g2d.setColor(Color.YELLOW);
g2d.fillRect(60, 20, 80, 40); // 重疊區域顏色變化
// 再次繪製相同矩形可擦除
XOR 運算規則:背景色 B,XOR 顏色 C,繪圖色 D。B XOR B = C、D XOR D = B、B XOR D = 混合色。此模式適合臨時性繪製(如拖拽選區),不需重繪背景即可擦除。現代 Swing 建議使用雙緩衝與 AlphaComposite 實現更靈活的混合效果。