Проблема извлечения данных для обработки событий мыши!

  • Автор темы 1sanek1
  • Дата начала
1

1sanek1

#1
Привет всем! Я хотел бы написать, в данном случае апплет, в котором навидя мышью на определённые координаты появляется надпись "Privet drug" например:
Код:
Код: 
import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 

/* 
<applet code="dfdg!" width=450 height=700> 
</applet> 
*/ 
class SampleFrame extends Frame implements MouseMotionListener 
{ 
String msg=""; 
SampleFrame(String title) 
{ 
super(title); 
addMouseMotionListener(this); 
MyWindowAdapter adapter = new MyWindowAdapter(this); 
addWindowListener(adapter); 
} 
public void paint(Graphics g) 
{ 
g.drawLine(10, 50, 10, 900); 
g.drawLine(10, 900, 1100, 900); 
g.drawLine(10, 50, 5, 55); 
g.drawLine(10, 50, 15, 55); 
g.drawLine(1100, 900, 1095, 895); 
g.drawLine(1100, 900, 1095, 905); 
g.drawString(msg, 10, 50); 
} 

public void mouseDragged(MouseEvent me){} 
public void mouseMoved(MouseEvent me)				//!!!!!! 
{		  //вот так можосделать создать, для точки с координ. x y 
int x = 10,y=50;						//появление надписи 
if(x==getX() && y==getY()) 
{ 
msg = "Privet drug!"; 
repaint(); 
} 
else 
{ 
msg = ""; 
repaint(); 
} 

} 
} 

class MyWindowAdapter extends WindowAdapter 
{ 
SampleFrame sampleFrame; 
public MyWindowAdapter(SampleFrame sampleFrame) 
{ 
this.sampleFrame = sampleFrame; 
} 
public void windowClosing(WindowEvent we) 
{ 
sampleFrame.setVisible(false); 
} 
} 

public class AppletFrame extends Applet 
{ 
Frame f; 
public void init() 
{ 
f = new SampleFrame("A Frame Window"); 

f.setSize(1200, 950); 
f.setVisible(true); 
} 
public void stsrt() 
{ 
f.setVisible(true); 
} 
public void stop() 
{ 
f.setVisible(false); 
} 
public void paint(Graphics g) 
{ 
g.drawString("Privet! ", 10, 20); 
} 
}
Проблема в том, что мне надо использовать не точку с координатами x, y , а массив координат.
Например есть масив mouse[6] из шести элементов, хотя число элементов в масиве вегда будит разным, как сделать чтоб в фун. mouseMoved можно было бы установить условие:
if(mouse[0]==getX() && mouse[1]==getY()){}
else if(mouse[2]==getX() && mouse[3]==getY()){}
else if(mouse[4]==getX() && mouse[5]==getY()){}
Причем использовать цикл в этом методе затруднительно, поскльку метод не сможет отслеживать курсор мыши, тоесть следующий пример работать не будит:
Код:
public void mouseMoved(MouseEvent me) 
{ 
int mouse[] = new int[6]; 
mouse[0]=10; 
mouse[1]=50; 
mouse[2]=10; 
mouse[3]=900; 
mouse[4]=1100; 
mouse[5]=900; 
for(int i=0; i<mouse.length; i+=2) 
{ 
if(mouse[i]==getX() && mouse[i+1]==getY()) 
{ 
msg = "Privet drug!"; 
repaint(); 
} 
else 
{ 
msg = ""; 
repaint(); 
} 
} 
}
Кто нибуть знает как обойти эту проблему и вывести на против каждой координаты mouse, mouse[i+1] необходимый текст, заранее спасибо!