package demo;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextArea;
class PopupMenuDemo extends JFrame{
private JTextArea text;
private JPopupMenu popmenu;
public PopupMenuDemo(){
super("菜单示例");
this.setBounds(100,100,500,500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.text = new JTextArea("我是中国人");
this.getContentPane().add(this.text);
this.popmenu = new JPopupMenu();
String popstr[]= {"剪切","复制","粘贴"};
JMenuItem popmenuitthis[] = new JMenuItem[popstr.length];
MyActionListener3 mal = new MyActionListener3(text);
for(int i=0;i<popstr.length;i++){
popmenuitthis[i]=new JMenuItem(popstr[i]);
this.popmenu.add(popmenuitthis[i]);
popmenuitthis[i].addActionListener(mal);
}
this.text.add(this.popmenu);
MyMouselistener2 mml = new MyMouselistener2(text,popmenu);
this.text.addMouseListener(mml);
this.setVisible(true);
}
}
class MyMouselistener2 implements MouseListener {
private JTextArea text;
private JPopupMenu popmenu;
public MyMouselistener2(JTextArea text, JPopupMenu popmenu)
{
this.text = text;
this.popmenu = popmenu;
}
public void mouseClicked(MouseEvent e){
if(e.getModifiers()==MouseEvent.BUTTON3_MASK){
popmenu.show(text,e.getX(),e.getY());
}
}
public void mouseEntered(MouseEvent e){
} public void mouseExited(MouseEvent e){
} public void mousePressed(MouseEvent e){
} public void mouseReleased(MouseEvent e){
}
}
class MyActionListener3 implements ActionListener {
private JTextArea text;
public MyActionListener3(JTextArea text){
this.text=text;
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand()=="复制"){text.copy();}
if(e.getActionCommand()=="粘贴"){text.paste();}
if(e.getActionCommand()=="剪切"){text.cut();
}
}
}
public class demo {
public static void main(String[] args) {
new PopupMenuDemo();
}
}
JAVA图形用户界面——菜单示例
于 2023-09-26 15:54:34 首次发布