일단 코드부터 보여드리겠습니다ㅠㅠㅠㅠㅠㅠㅠ
import java.awt.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class aaa
{
Frame f;
Panel p;
Panel[] panels;
PopupMenu pmenu;
MenuItem cal;
aaa()
{
f = new Frame("fda");
p = new Panel();
p.setLayout(new GridLayout(7, 7, 3, 3));
panels = new Panel[49];
pmenu = new PopupMenu("edit");
cal = new MenuItem("CAL");
pmenu.add(cal);
for (int i=0;i<panels.length ;i++ ) {
panels[i]=new Panel();
panels[i].add(pmenu);
panels[i].addMouseListener(new PmenuShower());
panels[i].setBackground(Color.red);
p.add(panels[i]);
}
p.setBackground(Color.white);
p.setSize(150, 150);
f.setBackground(Color.gray);
f.setSize(300, 200);
f.add(p);
f.setVisible(true);
}
public static void main(String args[]) {
aaa a = new aaa();
}
class PmenuShower extends MouseAdapter {
public void mouseCl/fdsaf/icked(MouseEvent me) { //저 사이에 슬러시 지우시면 됩니다ㅠㅠ
pmenu.show((Panel)pmenu.getParent(), me.getX(), me.getY());
}
}
}
이런식으로 코드를 짰습니다. 문제는 이태릭체로 표시한 바로 위 mouse/fdsa/licked()메서드의 show메서드 안의 getX()와 getY() 입니다. 각 판넬 안에서 마우스를 클/.//릭한 좌표에 popupmenu가 뜨게 하려는 의도이지만 (실행시켜보시면 바로 알수 있듯이)계속 마지막 판넬 위에 떠서 멘붕이네요... 뭐가 문제인거죠? 레이아웃이 문제인가?? 도움 부탁드립니다ㅠㅠ
일하면서 혼자 짬내서 책만보고 공부하려니 여기저기 막힐때마다 막막하고 어렵네요.... 형님들 좀 도와주십쇼 ㅠㅠ
ps.스크린샷 첨부하고 싶지만 회사컴터 보안설정때문에 파일첨부가 안되네요ㅠㅠ이해부탁드립니다
댓글 0