Иллюстрированный самоучитель по Java



              

Всплывающее меню - часть 2


Переделаем еще раз программу рисования из листинга 12.4, введя в класс scribble всплывающее меню для выбора цвета рисования и очистки окна и изменив обработку событий мыши. Для простоты уберем строку меню, хотя ее можно было оставить. Результат показан в листинге 13.2, а на рис. 13.3 — вид всплывающего меню в MS Windows.

Листинг 13.2.

Программа рисования с всплывающим меню

import j ava.awt.* ; 

import j ava.awt.event.*;

public class PopupMenuScribble extends Frame{ 

public PopupMenuScribble(String s){ super (s) ;

ScrollPane pane = new ScrollPane(); 

pane.setSize(300, 300); 

add(pane, BorderLayout.CENTER);

Scribble scr = new Scribble(this, 500, 500); 

pane.add(scr);

addWindowListener(new WinClose()); 

pack ();

setVisible(true); 

class WinClose extends WindowAdapter{

public void windowClosing(WindowEvent e){

System.exit(0); 

public static void main(String[] args){

new PopupMenuScribble(" \"Рисовалка\" с всплывающим меню"); 

}

class ScriBble extends Component implements ActionListener{ 

protected int lastX, lastY, w, h; 

protected Color currColor = Color.black; 

protected Frame f;

protected PopupMenu c;

public Scribble(Frame frame, int width, int height)!{ 

f = frame; w = width; h = height; 

enableEvents(AWTEvent.MOUSE_EVENT_MASK | 

        AWTEvent.MOUSEJtoTIONJEVENT_MASK);

с = new PopupMenu ("Цвет") ;

add(c);

Menultera clear = new Menultem("Очистить",

    new MenuShortcut(KeyEvent.VK_D)); 

Menultem red = new Menultem("Красный"); 

Menultem green = new Menultem("Зеленый"); 

Menultem blue = new Menultern("Синий"); 

Menultem black = new Menultem("Черный"); 

c.add(red); c.add(green); c.add(blue); 




Содержание  Назад  Вперед