题库 题库

【简答题】

本题中,鼠标在窗口中单击一下,就在单击的位置生成一个小矩形,如果在小矩形上双击鼠标左键,则删除小矩形。
import java.awt.*;
import java.awt.event.*;
import javax swing.*;
class MousePanel extends JPanel extends MouseMo-
tionListener
{public MousePanel()
{addMouseListener(new MouseAdapter()
{public void mousePressed(MouseEvent evt)
{int X=evt.getX();
int Y=evt.getY();
current=find(x,y);
if(current<0)
add(x,y);
}
public void mouseClicked(MouseEvent evt)
{int X=evt.getX();
int Y=evt.getY();
if(evt.getClickCount()>=2)
{remove(current);
}
}
});
addMouseMotionListener(this);
}
public void paintComponent(Graphics g)
{super.paintComponent();
for(int i=0;i<NSQUARES;I++)
draw(g,i);
}
public int find(int X,int y)
(for(int i=0;i<NSQUARES;I++)
if(squares[i].x-SQUARELENGTH/2<=x&&
X<=squares[i].x+SQuARELENGTH/2
&&squares[i].Y-SQUARELENGTH/2<=Y
&&y<=squares[i].Y+SQUARELENGTH/2)
return i ;
return-1 ;
}
public void draw(Graphics g,int i)
{g.drawRect(squares[i].X-SQUARE-
LENGTH/2。
squares[i].Y-SQUARELENGTH/2,
SQUARELENGTH,
SQUARELENGTH);
}
public void add(int X,int Y)
{if(nsquares<MAXNSQUARES)
{squares[nsquares]=new Point(x,y);
current=nsquares ;
nsquares++;
repaint();
}
}
public void remove(int n)
{if(n<0 ‖ n>=nsquares)return;
Nsquares- -;
squares[n]=squares[nsquares];
if(current= =n)current= -l;
repaint();
}
public void mouseMoved(MouseEvent evt)
{}
public void mouseDragged(MouseEvent evt)
{}
private static final int SQUARELENGTH=10:
private static final int MAXNSQUARES=100;
private Point[]squares=new Point[MAX-NSQUARES];
private int nsquares=0;
private int current=-l;
}
class MouseFrame extends JFramc
{public MouseFrame()
{setTitle("java3");
setSize(300,200);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0);
}
});
Container contentPane=getContentPane();
contentPane.add(MousePanel());
}
}
public class java3
{public static void main(String[]args)
{JFrame frame=new MouseFrame();
frame.show();
}
}

参考答案

第l处:ExtEnDs JPAnEl implEmEnts MousEMotionListEnEr.
第2处:supEr.pAintComponEnt(G)
第3处:ContEntPAnE.ADD(nEw MousEPAnEl())

相关试题

单选题 在软件开发中,需求分析阶段可以使用的工具是(  )。 查看答案
单选题 下列命令中用于激活系统守候进程以便能够在Ja—va虚拟机上注册和激活对象的是(  )。 查看答案
单选题 在软件开发中,需求分析阶段产生的主要文档是(  )。 查看答案
单选题 char类型被封装在(  )中。 查看答案
单选题 下列叙述中正确的是(  )。 查看答案
单选题 下列程序中,若从键盘中输入的是大写字母C,则程序输出的结果是(  )。
Importjava.io.*;
public class Exam{
public static void main(String args[]){
int ch=0;
System.out.println("输入一个字符:");
try{
ch=System.in.read();
charch_A='A',ch_Z='Z';
int delta c=(int)ch A+(int)ch Z-ch;
syStem. out.println("编码后的字符为:"+(char)delta_c);
}
catch(IOException e){
printStackTrace();
}
}
}
查看答案
单选题 可以使当前同级线程重新获得运行机会的方法是(  )。 查看答案
单选题 在一个容量为32的循环队列中,若头指针front=3,尾指针rear=2,则该循环队列中共有元素个数为(  )。 查看答案
单选题 下列方法中能完成主类实例初始化工作的是(  )。 查看答案
单选题 下列方法被调用后,一定使调用线程改变当前状态的是(  )。 查看答案
单选题 下列说法正确的是(  )。 查看答案
单选题 构造方法名必须与(  )相同,它没有返回值,用户不能直接调用它,只能通过new调用。 查看答案
单选题 下列组件不能添加进Frame主窗口的是(  )。 查看答案
单选题 下列运算符中,优先级最高的是(  )。 查看答案
单选题 当使用SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是(  )。 查看答案
单选题 下列变量的定义中,错误的是(  )。 查看答案
单选题 在Java中,与数据库连接的技术是(  )。 查看答案
单选题 下列说法中,(  )是正确的。 查看答案
单选题 结构化程序设计的3种基本结构是(  )。 查看答案
单选题 AWT中用来表示颜色的类是(  )。 查看答案