简答题:本题的功能是监听鼠标的操作。鼠标置于窗口中单击时(左键或右键),在单击的地方会画一个小矩形,如果将鼠标置于小矩形上,则鼠

  • 题目分类:Java
  • 题目类型:简答题
  • 查看权限:VIP
题目内容:
本题的功能是监听鼠标的操作。鼠标置于窗口中单击时(左键或右键),在单击的地方会画一个小矩形,如果将鼠标置于小矩形上,则鼠标光标状态改为小十字,按下鼠标左键可拖曳,双击鼠标左键(或右键)时,小矩形消失。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import javax.swing.*;
public class java3
{
public static void main(String[]args)
{
MouseFrame frame=new MouseFrame():
frame.setDefaultCloseOperation(JFrame.EXIT_
oN_CLOSE);
frame.show();
}
}
class MouseFrame extends JFrame
{
public MouseFrame()
{
setTitle("java3");
setSize(DEFAULTWIDTH,DEFAULT
HEIGHT):
MousePanel panel=new MousePanel();
Container contentPane=getContentPane();
contentPane.add(panel);
}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT=200;
}
class MousePanel extends JPanel
{
public MousePanel()
{
squares=new ArrayList();
current=null:
addMouseListener(new MouseHandler());
addMouseMotionListener(new MouseMotionHan-
dler());
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
for(int i=0;i<squares.size();i++)
g2.draw((Rectangle2D)squares.get(i));
}
public void find(Point2D p)
{
for(int i=0;i<squares.size();i++)
{
Rectangle2D r=(Rectangle2D)squares.get(i);
if(r.contains(p))return r;
}
return null:
}
public void add(Point2D p)
{
double x=P.getX();
double Y=P.getY():
current=new Rectangle2D.Double(
x-SIDELENGTH/2.
y-SlDELENGTH/2.
S1DELENGTH,
SIDELENGTH);
squares.add(current);
repaint();
}
public void remove(Rectangle2D s)
{
if(S= =null)return:
if(S= =current)current=null;
squares.remove(s):
repaint();
}
private static final int SIDELENGTH=10:
private ArrayList squares;
private Rectangle2D current;
private class MouseHandter extends MouseAction-
Listener
{
public void mousePressed(MouseEvent event)
{
current=find(event.getPoint());
if(current= =null)
add(event.getPoint());
}
public void mouseClicked(MouseEvent event)
{
current=find(event.getPoint());
if(current!=null&&event.getClickCount()
>=2)
remove(current);
}
}
private class MouseMotionHandler implements Mouse-
MotionListener
{
public void mouseMoved(MouseEvent event)
{
if(find(event.getPoint)= =null)
setCursor(Cursor.getDefaultCursor());
else
setCursor(Cursor.getPredefinedCursor
(Cursor.CROSSHAIR_CURSOR));
}
public void mouseDragged(MouseEvent event)
{
if(current!=null)
{
int x=event.getX():
int Y=event.getY();、
current.setFrame(
x-SIDELENGTH/2,
Y-SlDELENGTH/2.
SIDELENGTH,
SIDELENGTH);
repaint();
}
}
}
}
参考答案:
答案解析:

Java中所有类的父类是(  )。

Java中所有类的父类是(  )。 A.Father B.Dang C.Exception D.Object

查看答案

当浏览器重新返回Applet所在页面时,将调用Applet类的方法是(  )。

当浏览器重新返回Applet所在页面时,将调用Applet类的方法是(  )。 A.start() B.init() C.stop() D.destroy()

查看答案

关于谵妄患者,说法正确的是

关于谵妄患者,说法正确的是 A.会发生冲动行为但不会有自伤 B.常有恐怖性的视幻觉但内容常模糊不清 C.主要是意识范围障碍 D.不会产生被害妄想 E.突然变得

查看答案

“患者仰卧在躺椅上畅所欲言,治疗者在倾听和释问中解释患者的潜意识、情绪或幼年的特殊生活事件的方法”称为

“患者仰卧在躺椅上畅所欲言,治疗者在倾听和释问中解释患者的潜意识、情绪或幼年的特殊生活事件的方法”称为 A.梦的分析 B.自由联想 C.系统脱敏 D.厌恶疗法

查看答案

某二叉树共有60个叶子结点与50个度为1的结点,则该二叉树中的总结点数为(  )。

某二叉树共有60个叶子结点与50个度为1的结点,则该二叉树中的总结点数为(  )。 A.148 B.169 C.182 D.198

查看答案