填空题

本题中,鼠标在窗口中单击一下,就在单击的位置生成一个小矩形,如果在小矩形上双击鼠标左键,则删除小矩形。
import java. awt. * ;
import java. awt. event. * ;
import javax. swing. * ;
class MousePanel extends JPanel extends MouseMotionListener
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-SQUARELENGTH/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=-1;
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 [MAXNSQUARES];
private int nsquares=0;
private int current=-1;

class MouseFrame extends JFrame
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();

【参考答案】

第1处:extends JPanel implements MouseMotionListener
第2处:s......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

填空题
本题中定义了一个树型的通信录,窗口左侧是一个树,右侧是一个文本域,单击树的结点,则在右侧文本域中显示相关信息,如果单击的是树结点,则显示对应名字的电话信息。 import javax. swing. * ; import javax. swing. tree. * ; import java. awt. * ; import java. awt. event. * ; import javax. swing. event. * ; class Mytree2 extends JFrame______ JTree tree=null; JTextArea text=new JTextArea(20,20); Mytree2() Container con=getContentPane(); DefauhMutableTreeNode root=new DefauhMutableTreeNode ( 同学通信录 ); DefaultMutableTreeNode t1=new DefauhMutableTreeNode( 大学同学 ); DefaultMutableTreeNode t2=new DefaultMutableTreeNode( 研究生同学 ); DefaultMutableTreeNode t1_1=new DefauhMutableTreeNode( 陈艳 ); DefauhMutableTreeNode t1_2=new DefaultMutableTreeNode( 李小永 ); DefauhMutableTreeNode t2_1=new DefaultMutableTreeNode( 王小小 ); DefaultMutableTreeNode t2_2=new DefaultMutableTreeNode( 董小 ); setTitle( java2 ); root. add(t1); root. add(t2); t1. add(t1_1); t1, add(t1_2); t2. add(t2_1); t2. add(t2_2); tree=new JTree(root); JScrollPane scrollpane=new JScrollPane(text); JSplitPane splitpane=new JSplitPane(JSplitPane. HORIZONTAL_SPLIT, true, tree, scrollpane); tree. addTreeSelectionListener(this); con. add(splitpane); addWindowListener( new WindowAdapter() public void windowClosing(WindowEvent e) System. exit(0);); setVisible(true); setBounds(70,80,200,300); public void valueChanged(TreeSelectionEvent e) if(e, getSource()==tree) DefaultMutableTreeNode node= (DefaultMutableTreeNode) tree. getLastSelectedPathComponent(); if(node. isLeaf()) String str=______; if(str. equals( 陈艳 )) text. setText(str+ :联系电话: 0411-4209876 ); else if(str. equals( 李小永 )) text. setText (str+ :联系电话: 010 -62789876 ); else if(str. equals( 王小小 )) text. setText (str+ : 联系电话: 0430-63596677 ); else if(str. equals( 董小 )) text. setText(str + : 联系电话: 020-85192789 ); else text. setText(node. getUserObject(). toString()); public class java2 public static void main(String args[]) Mytree2 win=new Mytree2(); win. pack();