16. 2. 8. Demonstrate XOR mode.

 

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;


public class XORModePaintWithMouse extends JFrame{
	int chsX = 100;  int chsY = 100;

	public static void main(String[] args) {
		XORModePaintWithMouse f = new XORModePaintWithMouse();
	    f.setSize(300, 300);
	    f.setVisible(true);
	}
	
	XORModePaintWithMouse(){
		addMouseMotionListener(new MouseMotionAdapter() {
		      public void mouseMoved(MouseEvent me) {
		        int x = me.getX();
		        int y = me.getY();
		        chsX = x - 10;
		        chsY = y - 10;
		        repaint();
		      }
		    });
	}
	
	public void paint(Graphics g){
		g.drawLine(0, 0, 100, 100);
	    g.drawLine(0, 100, 100, 0);
	    g.setColor(Color.blue);
	    g.drawLine(40, 25, 250, 180);
	    g.drawLine(75, 90, 400, 400);
	    g.setColor(Color.green);

	    //将此图形上下文的绘图模式设置为在此图形上下文的当前颜色和新的指定颜色之间交替。
	    g.setXORMode(Color.black);
	    g.drawLine(chsX - 10, chsY, chsX + 10, chsY);
	    g.drawLine(chsX, chsY - 10, chsX, chsY + 10);
	    //设置将此图形上下文的绘图模式,以便通过此图形上下文中的当前颜色来覆盖目标。
	    g.setPaintMode();

	}

}


 

import java.applet.Applet;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;


public class ResizingWindow extends Applet{
	final int inc = 25;
	int max = 500;
	int min = 20;
	Dimension d;//Dimension 类封装单个对象中组件的宽度和高度(精确到整数)。
	
	public ResizingWindow(){
		addMouseListener(new MouseAdapter(){
			public void mouseReleased(MouseEvent e){
				int w = (d.width + inc) > max ? min: (d.width + inc);
				int h = (d.height + inc) > max ? min : (d.height + inc);
		        setSize(new Dimension(w, h));
			}
		});
	}
	
	public void paint(Graphics g){
		d = getSize();//获取此 Dimension 对象的大小。
		g.drawLine(0, 0, d.width -1, d.height -1);
		g.drawLine(0, d.height - 1, d.width - 1, 0);
		g.drawRect(0, 0, d.width - 1, d.height - 1);
	}
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值