import javax.swing.;
import java.awt.;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class JPopupMenuDemo implements ActionListener{
public static void main(String[] args) {
JFrame jf = new JFrame();
jf.setSize(250, 180);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件(F)");
JMenu editMenu = new JMenu("编辑(E)");
JMenu formatMenu = new JMenu("格式(O)");
JMenu lookMenu = new JMenu("查看(V)");
JMenu helpMenu = new JMenu("帮助(H)");
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(formatMenu);
menuBar.add(lookMenu);
menuBar.add(helpMenu);
JMenuItem newMenuItem = new JMenuItem("新建(N)");
JMenuItem openMenuItem = new JMenuItem("打开(O)");
JMenuItem saveMenuItem = new JMenuItem("保存(S)");
JMenuItem saveasMenuItem = new JMenuItem("另存为(A)");
JMenuItem exitMenuItem = new JMenuItem("退出(X)");
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.add(saveasMenuItem);
fileMenu.add(exitMenuItem);
JMenuItem canceIMenuItem = new JMenuItem("撤销(U)");
JMenuItem copyIMenuItem = new JMenuItem("剪切(T)");
JMenuItem pasteIMenuItem = new JMenuItem("复制(C)");
JMenuItem weissIMenuItem = new JMenuItem("粘贴(P)");
JMenuItem backIMenuItem = new JMenuItem("删除(L)");
editMenu.add(canceIMenuItem);
editMenu.add(copyIMenuItem);
editMenu.add(pasteIMenuItem);
editMenu.add(weissIMenuItem);
editMenu.add(backIMenuItem);
final JCheckBoxMenuItem checkBoxMenuItem = new JCheckBoxMenuItem("自动换行(W)");
final JRadioButtonMenuItem radioButtonMenuItem = new JRadioButtonMenuItem("字体(F)");
formatMenu.add(checkBoxMenuItem);
formatMenu.add(radioButtonMenuItem);
JMenuItem souIMenuItem = new JMenuItem("缩放(Z)");
JMenuItem zhangIMenuItem = new JMenuItem("状态栏(S)");
lookMenu.add(souIMenuItem);
lookMenu.add(zhangIMenuItem);
JMenuItem chaMenuItem = new JMenuItem("查看帮助(H)");
JMenuItem faMenuItem = new JMenuItem("发送反馈(F)");
JMenuItem guanMenuItem = new JMenuItem("关于记事本(A)");
helpMenu.add(chaMenuItem);
helpMenu.add(faMenuItem);
helpMenu.add(guanMenuItem);
JTextArea jTextArea = new JTextArea(20, 10);
jf.add(jTextArea);
saveMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
textWirter(jTextArea);
} catch (IOException ex) {
ex.printStackTrace();
}
}
});
newMenuItem.addActionListener(new JPopupMenuDemo());
openMenuItem.addActionListener(new JPopupMenuDemo());
saveMenuItem.addActionListener(new JPopupMenuDemo());
saveasMenuItem.addActionListener(new JPopupMenuDemo());
exitMenuItem.addActionListener(new JPopupMenuDemo());
canceIMenuItem.addActionListener(new JPopupMenuDemo());
copyIMenuItem.addActionListener(new JPopupMenuDemo());
pasteIMenuItem.addActionListener(new JPopupMenuDemo());
weissIMenuItem.addActionListener(new JPopupMenuDemo());
backIMenuItem.addActionListener(new JPopupMenuDemo());
checkBoxMenuItem.addActionListener(new JPopupMenuDemo());
radioButtonMenuItem.addActionListener(new JPopupMenuDemo());
souIMenuItem.addActionListener(new JPopupMenuDemo());
zhangIMenuItem.addActionListener(new JPopupMenuDemo());
chaMenuItem.addActionListener(new JPopupMenuDemo());
faMenuItem.addActionListener(new JPopupMenuDemo());
guanMenuItem.addActionListener(new JPopupMenuDemo());
jf.setJMenuBar(menuBar);
jf.pack();
jf.setLocationRelativeTo(null);
jf.setVisible(true);
JPanel panel = new JPanel();
panel.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.isMetaDown()) {
showPopupMenu(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
jf.setContentPane(panel);
jf.setVisible(true);
}
public static void showPopupMenu(Component invoker,int x,int y) {
JPopupMenu popupMenu = new JPopupMenu();
JMenuItem chakanMenuItem = new JMenuItem("撤销(U)");
JMenuItem paiMenuItem = new JMenuItem("剪贴(T)");
JMenuItem shuaMenuItem = new JMenuItem("复制(C)");
JMenuItem zhanMenuItem = new JMenuItem("粘贴(P)");
JMenuItem kuaiMenuItem = new JMenuItem("删除(D)");
JMenuItem cheMenuItem = new JMenuItem("全选(A)");
popupMenu.add(chakanMenuItem);
popupMenu.add(paiMenuItem);
popupMenu.add(shuaMenuItem);
popupMenu.add(zhanMenuItem);
popupMenu.add(kuaiMenuItem);
popupMenu.add(cheMenuItem);
popupMenu.show(invoker, x, y);
}
public static void textWirter(JTextArea jt) throws IOException {
File file = new File("C:\\TEXT\\java.txt");
FileWriter fw = new FileWriter(file);
fw.write(jt.getText());
fw.close();
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand() + "按钮被点击");
}
}