我正在構建一個文字處理器程序作爲我在學校的Java課程的作業,我很難讓popupmen工作,當我右鍵點擊我的文本區域。我已經構建了彈出式菜單,並有我的textarea聽我popuplistener,我已經覆蓋按下鼠標和鼠標發佈功能與Popupmenu不會在java中工作?
class popupframe extends JFrame{
JMenuItem copy;
JMenuItem paste;
JTextArea textarea = new JTextArea();
JPopupMenu pop;
popupframe(){
Container cpane = getContentPane();
setSize(300 , 300);
setLocation(300, 300);
setTitle("Test");
JPopupMenu pop = new JPopupMenu();
copy = new JMenuItem("copy");
paste = new JMenuItem("paste");
textarea = new JTextArea("something goes here", 5, 5);
pop.add(copy);
pop.add(paste);
PopupListener popuplistener = new PopupListener();
textarea.addMouseListener(popuplistener);
}
class PopupListener extends MouseAdapter{
public void MousePressed(MouseEvent e){
popit(e);
}
public void MouseReleased(MouseEvent e){
popit(e);
}
private void popit(MouseEvent e){
if(e.isPopupTrigger()){
pop.show(e.getComponent(), e.getX(), e.getY());
}
}
}
}
我不明白爲什麼它不工作,但也許我失去了一些東西的關鍵,請幫忙!!非常感謝
*「我不明白爲什麼它不工作「* - 我們也不能,考慮提供一個[可運行示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做什麼的一個示例你會遇到這個問題,這會減少混淆和更好的反應 – MadProgrammer
另外,考慮使用['JComponent#serComponentPopupMenu'](http://docs.oracle.com/javase/7/docs/api/javax/swing/ JComponent.html#setComponentPopupMenu(javax.swing.J PopupMenu)),並讓它照顧細節 – MadProgrammer
感謝您的答覆,我編輯了我的代碼,以便您可以更清晰地瞭解我即將發生的操作 –