swing快速入门(二十一)

注释很详细,直接上代码

上一篇

新增内容

1.PopupMenu的使用(可以实现在用户右键单击组件或其他互动事件发生时,在屏幕的指定位置显示一个菜单)

2鼠标监听器的演示

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class swing_test_17 {
   

    private Frame frame=new Frame("测试PopupMenu");

    //创建文本域
    private TextArea ta=new TextArea("遥遥领先!",6,40);

    //创建Panel容器
    private Panel p=new Panel();

    //创建PopupMenu
    PopupMenu popupMenu=new PopupMenu();

    //创建菜单项
    MenuItem comment=new MenuItem("注释");
    MenuItem cancelcomment=new MenuItem("取消注释");
    MenuItem copy=new MenuItem("复制");
    MenuItem save=new MenuItem("保存");

    //组装视图
    public void init() {
   

        //创建监听器
        ActionListener listener=new ActionListener() {
   
            public void actionPerformed(ActionEvent e) {
   
                String actionCommand=e.getActionCommand();
                ta.append("您点击了:"+actionCommand+"\n");
            }
        };

        //注册监听器
        comment.addActionListener(listener);
        cancelcomment.addActionListener(listener);
        copy.addActionListener(listener);
        save.addActionListener(listener);

        //设置菜单项的内容
        popupMenu.add(comment);
        popupMenu.add(cancelcomment);
        popupMenu.add(copy);
        popupMenu.add(save);

        //将PopupMenu添加到Panel容器中
        p.add(popupMenu);

        //用setPreferredSize设置Panel的大小
        p.setPreferredSize(new Dimension(400,300));

        //给Panel注册鼠标事件,监听鼠标释放动作
        p.addMouseListener(new MouseAdapter() {
   
            public void mouseReleased(MouseEvent e) {
   
                boolean isPopupTrigger=e.isPopupTrigger();
                    if(isPopupTrigger) {
   
                        //显示PopupMenu
                        if(p!=null) {
   
                            popupMenu.show(p, e.getX(), e.getY());
                        }
                    }
                }
        });

        frame.add(p,BorderLayout.SOUTH);
        frame.add(ta,BorderLayout.CENTER);

        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
   
        new swing_test_17().init();
    }
}

演示效果:

在这里插入图片描述

相关推荐

  1. swing快速入门(三)

    2023-12-20 12:24:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-20 12:24:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-20 12:24:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-20 12:24:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-20 12:24:02       18 阅读

热门阅读

  1. 如何用python开发打包APP

    2023-12-20 12:24:02       52 阅读
  2. element-ui 抽屉里面嵌套弹窗

    2023-12-20 12:24:02       43 阅读
  3. 74.搜索二维矩阵

    2023-12-20 12:24:02       52 阅读
  4. C++对C语言数据类型的扩展

    2023-12-20 12:24:02       39 阅读