lks571542558 2022-05-28 09:33 采纳率: 60%
浏览 5
已结题

添加可编辑,复制粘贴保存等功能,就是类似于文本文档那样,多些功能

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() + "按钮被点击");
}

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月5日
    • 创建了问题 5月28日

    悬赏问题

    • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
    • ¥15 神经网络模型一直不能上GPU
    • ¥15 苍穹外卖拦截器token为null
    • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
    • ¥20 wpf datagrid单元闪烁效果失灵
    • ¥15 券商软件上市公司信息获取问题
    • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
    • ¥15 Android studio AVD启动不了
    • ¥15 陆空双模式无人机怎么做
    • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关