Java 팝업메뉴 관련 질문입니다..ㅜㅡ;; 초보이구요;;;

갑인사후 첫 질문인데요 ㅜㅡ;;
잘하시는 분들이 보시면;; 초보질문이겟지만...ㅜㅡ;;
책보고 독학중인데 넘 어려워서요...;;;
첫 번째 질문은요. EventHandler 클래스에서요 windowadpter 만 썼자나요?
거기서 mouseadapter도 쓰면 나중에 나오는 mouseevent를 다 쓰지 않아도 되지 않나요??;;
두 번째 질문은요
class EventHandler extends WindowAdapter implements ActionListener, MouseListener
{
PopupMenu_Use pmu;

public EventHandler(PopupMenu_Use pm)
{
this.pmu = pm;
}
이 부분에서PopupMenu_Use pmu; 이 부분이랑
public EventHandler(PopupMenu_Use pm)
{
this.pmu = pm;
}
이 부분을 해준 의미가 먼지;; 잘 모르겠습니다..ㅜㅡ;;
아주 초보라;; 제대로 질문을 햇는지도 모르겠어요.
읽어 주셔서;; 감사하구요. 아시면 답변 부탁드립니다.^^

-----------------------------------------------------------------------------------

import java.awt.*;
import java.awt.event.*;

class PopupMenu_Use extends Frame
{
TextArea ta;
MenuItem shortmenu_cancel, shortmenu_cut, shortmenu_delete, shortmenu_copy, shortmenu_paste;
PopupMenu pm;
EventHandler eh;

public PopupMenu_Use()
{
ta = new TextArea(50,30);

shortmenu_cancel = new MenuItem(실행취소);
shortmenu_cut = new MenuItem(잘라내기);
shortmenu_delete = new MenuItem(지우기);
shortmenu_copy= new MenuItem(복사하기);
shortmenu_paste = new MenuItem(붙여넣기);

pm = new PopupMenu();
pm.add(shortmenu_cancel);
pm.addSeparator();
pm.add(shortmenu_cut);
pm.add(shortmenu_delete);
pm.add(shortmenu_copy);
pm.add(shortmenu_paste);

eh = new EventHandler(this);

shortmenu_cancel.addActionListener(eh);
shortmenu_cut.addActionListener(eh);
shortmenu_delete.addActionListener(eh);
shortmenu_copy.addActionListener(eh);
shortmenu_paste.addActionListener(eh);
this.addWindowListener(eh);
ta.addMouseListener(eh);

this.add(ta);
this.add(pm);
}

public static void main(String[] args)
{
PopupMenu_Use pmu = new PopupMenu_Use();

pmu.setSize(300,200);
pmu.show();
}
}

class EventHandler extends WindowAdapter implements ActionListener, MouseListener
{
PopupMenu_Use pmu;

public EventHandler(PopupMenu_Use pm)
{
this.pmu = pm;
}

public void windowClosing(WindowEvent we)
{
System.exit(0);
}

public void actionPerformed(ActionEvent e)
{
MenuItem mi = (MenuItem)e.getSource();

String selected = mi.getLabel();

if(selected == 실행취소)
pmu.ta.setText(실행취소가 선택되었습니다.);
else if(selected == 잘라내기)
pmu.ta.setText(잘라내기가 선택되었습니다.);
else if(selected == 지우기)
pmu.ta.setText(지우기가 선택되었습니다.);
else if(selected == 복사하기)
pmu.ta.setText(지우기가 선택되었습니다.);
else if(selected == 붙여넣기)
pmu.ta.setText(실행취소가 선택되었습니다.);
}

public void mouseClicked(MouseEvent e)
{
}

public void mouseEntered(MouseEvent e)
{
}

public void mouseExited(MouseEvent e)
{
}

public void mousePressed(MouseEvent e)
{
if(e.getButton() == 3)
this.pmu.pm.show(pmu, e.getX(), e.getY());
}

public void mouseReleased(MouseEvent e)
{
}
}

댓글 2

  • 하늘 2026.01.23

    아.! 그러쿤요 ㅜㅡ;; ㅋ 감사합니다! 읔.. 어려워요;ㅜㅜ;; 글두 재미씁니다 ㅋ

  • 큰솔 2026.01.23

    지금 작성하신 클래스는 두개의 클래스입니다.
    PopupMenu_Use에서 main함수가 있는 부분이 가장 먼저 실행되고 EventHandler 도 PopupMenu_Use의 맴버변수로 가지고 있는 상태 입니다.
    EventHandler
    PopupMenu_Use
    그런데 EventHandler가
    텍스트 에어리어에 \실행취소가 선택되었습니다.\라고 써야하는데
    어디에다가 해야 할까요?

    PopupMenu_Use 클래스의 TextArea에 써야 합니다.
    즉

프로그램 개발일반 다른 글

목록