16. 2. 8. Demonstrate XOR mode.

本文介绍两个Java程序示例:一个使用鼠标移动绘制XOR模式线条的程序;另一个是通过鼠标事件调整窗口大小的示例。前者展示了如何在Swing中使用XOR模式进行绘图,后者演示了如何响应鼠标释放事件来动态改变Applet的尺寸。

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); } }


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值