Источник события мыши часто связан с контейнером. Язык Java предоставляет два интерфейса для обработки событий мыши: интерфейс MouseListener и MousemotionListener.
МУСЕТАЛЬНЫЙ интерфейс
Интерфейс MouseListener может обрабатывать 5 типов событий мыши: нажмите мышь, отпустите мышь, щелкните мышью, введите мышь и выйдите из мыши. Соответствующие методы:
(1) getx (): x координата мыши
(2) gety (): координата y мыши
(3) getModifiers (): Получите левую или правую кнопку мыши.
(4) GetClickCount (): количество раз, когда мышь нажимается.
(5) getSource (): Получите источник события, где произошла мышь.
(6) AddMouseListener: добавьте монитор.
(7) removemouseListener: удалите монитор.
Методы реализации интерфейса MouseListener являются:
(1) мышиный (мышив E);
(2) мыслили (мыслив E);
(3) мышиный (мышиный (мышив E);
(4) mouseexited (mouseevent e);
(5) MouseClicked (Mouseevent E);
[Пример] апплет устанавливает текстовую область для записи серии событий мыши. Когда мышь входит в окно апплета, текстовая область отображает «мышь»; , когда мышь нажимает, когда он дважды щелкнула, текстовая область отображается «дважды щелкнуть мышью»; Программа также отображает красный круг, и когда мышь нажимается, радиус круга будет продолжать расти.
Импорт java.applet.*; import javax.swing.*; import java.awt.*; импортировать java.awt.event.*; класс mypanel extends jpanel {public void print (int r) {graphics g = getGraphics (); g.clearrect (0,0, this.getWidth (), this.getheight ()); TS Mouseelistener {jtextarea text; Открыть »,« Дважды щелкните мышь »}; MyWindow (String S) {Super (S); Container con = this.getContentPane (); con.setLayout (new Gridlayout (2,1)); this.SetSize ( 200 300); addmo uselistener (это); MouseStates [MouseFlg]+", позиция:"+x+","+y+"/n"); = e.gety (); voi d MouseEndered (Mouseevent E) {x = E.Getx (); = e.gety (); );
События мыши могут происходить на любом компоненте: вход мыши, выход мыши, пресса мыши и т. Д. Например, добавьте кнопку в приведенную выше программу и добавьте монитор мыши в объект кнопки, измените метод init () в вышеуказанной программе в следующую форму, то есть он может указывать все события мыши на кнопке.
Jbutton кнопка; public in init () {button = new jbutton ("События мыши также могут происходить на кнопке"); кнопка addmouseListener (это);}
Если программа хочет дополнительно знать, что кнопка левой или правой мыши нажата или нажимает, кнопку левой или правой мыши мыши можно определить с помощью кнопки Constants1_mask и Button3_mask в классе Inputevent. Например, следующее выражение определяет, была ли нажата на кнопку правой мыши или щелкнут правой кнопкой мыши:
E.GetModifiers () == Инфункт
MousemotionListener Interface
Интерфейс MouseMotionLister обрабатывает два события: перетаскивание мыши и перемещение мыши.
Способ зарегистрировать монитор:
AddMouseMotionListener (монитор)
Есть два метода интерфейса для реализации:
(1) MousedRagged (Mouseevent E)
(2) Mousemoved (Mouseevent E)
[Пример] Приложение, которое изменяется в полосах прокрутки синхронно с окном отображения. В окне есть квадрат. бар. Напротив, если ползунок прокрутки перемещается, позиция дисплея квадрата в окне также изменится.
импортировать javax.swing. con .setlayout (new Borderlayout ()); ); Borderlayout. Новое измерение (500 300); int) (((float) x/(float) getSize (). Ширина)*100.0); *100.0); ); .fillrect (0,0, размер. мыши Eexited (MouseEvent e) {} public void mouseClicked (mouseevent e) {} public void mouserelease (mouseevent e) {} public void mousemoved (mouseevent e) {} public void mo usepressed (mouseevent e) {x = e.getx (e) ); y); .width); Пример 6_9 {public static void main () {mywindow mywindow = new mywindow ("Схематическая программа Scrollbar");
В приведенном выше примере, если вам нужно изменить позицию отображения контента, скользят ползунок, вы можете просто использовать панель Scroll JScrollPane. Если это так, то как создания, так и контроля прокрутки можно избежать и реализовано непосредственно JScrollPane. См. Следующее измененное определение MyWindow:
Класс MyWindow расширяет Jframe {public myWindow (String S) ; () {вернуть новое измерение (400 400);
Форма указателя мыши также может контролироваться программой, а метод setcursor () может установить форму указателя мыши. Например, код SetCursor (custor.getPredefinedCursor (custor.wait_cursor)).