锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍦ㄤ竴涓狫Panel涓婄殑鐢誨浘鍑芥暟錛?br> void draw(Graphics g,int x, int y, Color color){
g.setColor(color);
//g.setXORMode(color); //鍔犱笂灝辯敾涓嶅嚭鍦?br> g.fillOval(x,y,20,20);
}
鍗曞嚮浜嬩歡:
public void mouseClicked(MouseEvent event){
g = getGraphics();
draw(g,event.getX(),event.getY(),Color.black);
}
鎴戞兂鍗曞嚮榧犳爣鐢諱竴涓渾錛屽啀鍗曞嚮涓嬈℃摝鍘匯傚彲鏄湪draw鍑芥暟涓嫢鍔犱笂g.setXORMode(color);灝辯敾涓嶅嚭鍦嗘潵錛屾敞閲婃帀鍒欒兘姝e父浣滃浘錛岃闂繖鏄庝箞鍥炰簨??
-------------------------------------
XOR 寮傛垨
------------------------------------
setXORMode()鏂規(guī)硶璁劇疆緇樺浘妯″紡鍙互浣夸竴涓柊鐨勫璞′竴寮傛垨鎿嶄綔鐨勬柟寮忓姞鍏ョ獥鍙d腑
浠栨寚瀹氫簡緇樺埗瀵硅薄鏃舵埛紿楀彛榪涜寮傛垨鎿嶄綔鐨勯鑹層?br>
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DrawsDemo{
public static void main(String[] args){
ShapesFrame sf=new ShapesFrame();
}
}
class ShapesFrame extends JFrame{
public ShapesFrame(){
setTitle("璇鋒暀setXORMode鐨勭敤娉?);
setSize(300,200);
XORPanel xp=new XORPanel();
Container container=getContentPane();
container.add(xp);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
class XORPanel extends JPanel{
static boolean flag=false;
public XORPanel(){
addMouseListener( new MouseAdapter(){
public void mouseClicked(MouseEvent mevent){
repaint();
}
}
);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.red);
if(!flag){
g.setXORMode(Color.blue); //鍔犱笂灝辯敾涓嶅嚭鍦?br>}
flag=!flag;
g.fillOval(10,10,20,20);
//draw(g,10,10,Color.blue);
}
void draw(Graphics g,int x, int y, Color color){
}
}
----------------------------------------------------
鍛碉紝鍐鋒湀鍏勭殑浠g爜鏄鐨?br>涓琛屼竴琛屽榪囧幓錛岀粓浜庡彂鐜幫紝鑷繁鎶妏aintComponent鐨刾鏁叉垚P浜嗐傞毦鎬媧諱笉鎵ц錛屽綋鍗沖悙琛鏁板崌
鏈鍚庢湁涓鐐逛笉鏄庣櫧錛氭垜鐞嗚В鐨剆etXORMode(color)搴旇鏄妸鎸囧畾鐨刢olor涓庤緇樺浘鐨勫尯鍩熷唴鐨勯鑹茶繘琛屽紓鎴栨搷浣溿傚嵆錛?br>濡傚尯鍩熷唴鏃犻鑹詫紝搴旇兘緇樺嚭鎸囧畾棰滆壊鐨勫浘褰€?br>濡傚尯鍩熷唴宸插瓨鍦ㄦ寚瀹氶鑹詫紝寮傛垨鎿嶄綔鍚庡簲鎿﹀幓鎸囧畾棰滆壊鐨勫浘褰?br>濡傚尯鍩熷唴鍐呭凡瀛樺湪鍏跺畠棰滆壊錛屽簲緇樺埗鍑鴻棰滆壊鍜屾寚瀹氶鑹茶繘琛屽紓鎴栨搷浣滃悗鐨勬柊棰滆壊鐨勫浘褰€?/p>
鍙▼搴忚繍琛岀粨鏋滄槸錛氬鏋滃尯鍩熷唴鏃犻鑹詫紝鏃犳硶緇樺埗鍑哄浘褰?鏄笉鏄垜鐞嗚В鐨勬湁闂錛?br>鏂囨。瀵箂etXORMode鐨勮鏄庢槸錛?/p>
Sets the paint mode of this graphics context to alternate between this graphics context's current color and the new specified color
璁╁浘褰笂涓嬫枃鐨勭粯鍥炬ā寮忓湪鍏跺師鏈夐鑹蹭笌鎸囧畾鐨勬柊棰滆壊闂磋繘琛岃漿鎹?/p>
涔熸病鏈夎褰撲笉瀛樺湪鍘熸湁棰滆壊鏃跺氨緇樹笉鍑哄浘褰㈡潵鍟?/p>
---------------------------------------------------------
CoffeeMachine(TwoBeds)鍏勮鐨勫鐨勶紝鎴戝java鍥懼艦涔熸病鎬庝箞鐮旂┒榪囷紝浣嗘槸瀵箂etXormode鐨勭悊瑙?br>鍜屼綘紼嶅井鏈夌偣涓嶅悓錛屾垜涔熻涓簊etXormode鍙互鎼藉幓鍥懼艦錛屼絾鏄?br>g.setColor(Color.blue);
g.setXORMode(Color.blue);
涓ゅ彞璇濇瘡嬈¢兘鎵ц鐨勮瘽錛岃摑鑹插拰钃濊壊xor灝辨病浜嗭紝浠涔堜篃鏄劇ず涓嶅嚭鏉ヤ簡錛屽叾瀹?xor鏄彂鐢熶綔鐢ㄧ殑錛?br>浣嗚鏈変釜寮鍏沖彉閲忥紝絎竴嬈¤浠栦笉xor,絎簩嬈¤浠杧or,鎶婂浘褰㈠氨xor娌′簡錛?br>涓嶄俊錛屼綘鎶妔etXormode(榪欓噷鐨勯鑹叉崲鎴愬埆鐨?浣犲彲浠ョ湅鍒皒or鍚庣殑棰滆壊鏃笉鏄摑涔熶笉鏄?..
鏄袱縐嶉鑹茬殑鍙犲姞銆?/p>
涓嶇煡閬撳涓嶅錛岃鎸囨暀銆?br>---------------------------------------
瀵圭殑錛寈or鑳芥摝鍘葷浉鍚岄鑹茬殑鍥懼艦錛岃兘瀵逛笉鍚岄鑹茶繘琛屽彔鍔犮備絾浼間箮鏄粯鍥懼尯宸茬粯鍒舵煇縐嶉鑹茬殑鎯呭喌涓嬬敤xor鎵嶈兘鐢誨嚭鍥懼艦鏉ャ?br>璁板緱浠ュ墠瀛elphi鐨勬椂鍊欑敤寮傛垨妯″紡鏄兘鍦ㄦ湭鐫鑹茬殑鍖哄煙涓婄粯鍥劇殑銆傛墽琛屼竴嬈$粯鍑烘寚瀹氶鑹插浘褰紝鍐嶆墽琛屼竴嬈℃摝鍘伙紝鏂逛究寰楀緢錛宩ava濂借薄涓嶅お涓鏍楓傛槸涓嶆槸瀵規(guī)湭鐫鑹茬殑鍖哄煙榪涜寮傛垨鎿嶄綔鏃朵嬌鐢ㄧ殑“絀?#8221;棰滆壊鏄被浼糿ull鐨勬蹇碉紝浠諱綍鍊間笌涔嬭繍綆楃粨鏋滈兘鏄?#8220;絀?#8221;錛屾墍浠ョ粯涓嶅嚭鍥懼艦錛?/p>
java鏂囨。涓婂叧浜巗etXORMode鐨勮鏄庢垜涔熺湅涓嶆槸寰堟槑鐧斤細
When drawing operations are performed, pixels which are the current color are changed to the specified color, and vice versa
鎵ц緇樺浘鎿嶄綔鏃跺綋鍓嶉鑹茬殑璞$礌灝嗗彉涓烘寚瀹氶鑹詫紝鍙嶄箣浜︾劧銆?/p>
浣嗘槸鑻ュ綋鍓嶉鑹蹭負Color.red錛宻etXORMode(Color.blue),緇樺浘鍚庢槑鏄庝細鍙樻垚緇胯壊錛岃屼笉鏄寚瀹氱殑钃濊壊鍛銆傝繖鏂囨。鍐欑殑鏄笉鏄湁闂浜嗭紵
鐢ㄤ簡2涓眰錛岀涓涓眰錛坕d涓簂oading錛夊彲浠ュ啓涓婁竴浜涙彁紺烘秷鎭傝岀2涓眰(id涓簃yapplet)鍦ㄤ竴寮濮嬫槸涓嶅彲瑙佺殑銆傚綋applet涓嬭澆濂戒簡錛岄┈涓婃妸絎?涓眰鏄劇ず鍑烘潵錛屽茍鎶婄涓涓眰璁句負涓嶅彲瑙併傚洜姝わ紝鍙榪?涓眰澶у皬錛屼綅緗繀欏誨畬鍏ㄤ竴鑷淬傚氨鍙互瀹炵幇鎴戜滑鐨勭洰鏍囥?/p>
銆銆鐜板湪鎴戜滑鍙樊鏈鍚庝竴涓棶棰橀渶瑕佽В鍐籌細濡備綍鐭ラ亾applet宸茬粡瀹屽叏涓嬭澆浜嗗憿錛熷湪IE鍜宯etscape涓兘鏈夋彁渚沝ocument.all榪欎釜灞炴э紝褰撳簲欏甸潰鐨勫叏閮ㄥ唴瀹癸紙鍖呮嫭applets,鍥劇墖錛屽0闊崇瓑錛夊凡緇忎笅杞藉悗璇ュ睘鎬т負鐪熴傚ソ錛岃繖鏍鳳紝鎴戜滑鍙渶鐩戞祴document.all鏄惁涓虹湡錛屽鏋滄槸錛岄偅灝卞彲浠ユ妸娑堟伅鎵鍦ㄧ殑灞傝涓轟笉鍙錛岃宎pplet鎵鍦ㄧ殑灞傝涓哄彲瑙侊紝騫跺埛鏂癮pplet鐨勬樉紺猴紙鍥犱負鍏堝墠applet鐨勬樉紺鴻闅愯棌浜嗭級錛屽惁鍒欏垯鐩稿弽澶勭悊銆?/p>