精华内容
下载资源
问答
  • 内容索引:VB源码,界面编程,菜单 VB弹出式窗体快捷菜单制作示例,这种菜单是怎么制作的呢?其实非常简单,不懂的请下载这示例参阅一下,看就会了埃
  • 主要介绍了Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例,需要的朋友可以参考下
  • 菜单式弹出窗体

    2014-12-04 20:17:07
    弹出式窗体他的要求如下: 1.点击按钮弹出这个窗体在按钮旁边,并可编辑内容。 2.鼠标点击其他地方(非弹出窗体),这个窗体关闭 注意:1.这里基类必须是QDialog. 2.创建他时必须指定parent. 3.这个窗体...
    弹出式窗体他的要求如下:
       1.点击按钮弹出这个窗体在按钮旁边,并可编辑内容。
       2.鼠标点击其他地方(非弹出窗体),这个窗体关闭
    
    
    注意:1.这里基类必须是QDialog.
          2.创建他时必须指定parent.
          3.这个窗体必须new出来。
    
    
    
    
    //头文件
    class GTZLSetWidget : public QDialog
    {
    
        Q_OBJECT
    
    
    public:
    
        explicit GTZLSetWidget(QWidget *parent = 0);
    
        ~GTZLSetWidget();
    
    
    
    public slots:
    
    
    
    
    
    private slots:
    
        void onTimer();
    
    
    
    private:
    
        void setupUI();
    
    
    
    private:
    
        QTimer * m_timer;
    
    };
    
    
    
    
    
    
    
    
    
    
    
    //实现文件
    GTZLSetWidget::GTZLSetWidget(QWidget *parent)
    
       :QDialog(parent)
    {
        setupUI();
        m_timer->start(100);
    }
    
    GTZLSetWidget::~GTZLSetWidget()
    {
        m_timer->stop();
        if(m_timer)delete m_timer;
    }
    
    void GTZLSetWidget::setupUI()
    {
        this->setWindowFlags(windowFlags() | Qt::FramelessWindowHint);
        //this->setWindowFlags(Qt::FramelessWindowHint | Qt::Window);
        //this->setAttribute(Qt::WA_TranslucentBackground);
    
    }
    
    void GTZLSetWidget::onTimer()
    {
        if(!this->isActiveWindow())
        {
            this->close();
            this->deleteLater();
        }
    }
    
    
    
    
    
    
    
    
    
    
    
    //调用点函数,记住,这里有点特殊,这个窗体必须new出来否则窗体无法获取到键盘输入焦点,必须指定parent否者无法正常显示
    void GZLTestAccountView::onSetting()
    {
        QPoint pt = m_settingButton->pos();
        pt = this->mapToGlobal(pt);
        int h = m_settingButton->height();
    
        GTZLSetWidget *setting = new GTZLSetWidget(this);
        pt.setY(pt.y()+h);
        setting->move(pt);
    
        setting->show();
        setting->raise();
        setting->setFocus();
    }
    
    展开全文
  • 用vb语言实现的功能 实现的窗体和文本框的下拉和弹出式菜单
  • 摘要:VC/C++源码,界面编程,弹出式菜单 如何在窗体内创建一个弹出式菜单,在窗体中,点右键的时候,弹出的菜单,类似windows系统的默认菜单风格,虽然不华丽,但是最实用的一种菜单风格,本源码实例中演示了此种菜单...
  • 文章目录:下拉式菜单的创建步骤:二:弹出式菜单的创建步骤:三:选项卡窗体: 菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中. 菜单组件由菜单栏 ...

    菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.

    菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成。一般菜单栏放 Frame 窗口中,只要调用 Frame 类的 setMenuBar()方法即可。

    常用的菜单有:下拉式菜单和弹出式菜单(独立显示,可出现在任意地方).

    1… Java弹出菜单,为JTextArea添加了右键弹出式菜单

    参考:https://www.cnblogs.com/sl-shilong/articles/2829402.html

    Java鼠标右键弹出菜单,该例子为JTextArea添加了右键弹出式菜单,实现了复制、粘贴以及剪切功能。
    
    import java.awt.datatransfer.Clipboard;
    import java.awt.datatransfer.DataFlavor;
    import java.awt.datatransfer.Transferable;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    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.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.KeyStroke;
    import javax.swing.UIManager;
    
     
    
    public class Test extends JFrame {
    
     private static final long serialVersionUID = -5942087991012920147L;
    
     private JScrollPane pane = null;
    
     private TextAreaMenu text = null;
    
     public Test() {
      super("右键菜单");
      try { // 使用Windows的界面风格
       UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
      } catch (Exception e) {
       e.printStackTrace();
      }
      text = new TextAreaMenu();
      pane = new JScrollPane(text);
      this.getContentPane().add(pane);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      this.setSize(300, 200);
      this.setVisible(true);
     }
    
     public static void main(String args[]) {
      new Test();
     }
    
     
     class TextAreaMenu extends JTextArea implements MouseListener {
    
      private static final long serialVersionUID = -2308615404205560110L;
    
      private JPopupMenu pop = null; // 弹出菜单
    
      private JMenuItem copy = null, paste = null, cut = null; // 三个功能菜单
    
      public TextAreaMenu() {
       super();
       init();
      }
    
      private void init() {
       this.addMouseListener(this);
       pop = new JPopupMenu();
       pop.add(copy = new JMenuItem("复制"));
       pop.add(paste = new JMenuItem("粘贴"));
       pop.add(cut = new JMenuItem("剪切"));
       copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK));
       paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK));
       cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK));
       copy.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
         action(e);
        }
       });
       paste.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
         action(e);
        }
       });
       cut.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
         action(e);
        }
       });
       this.add(pop);
      }
    
      
      public void action(ActionEvent e) {
       String str = e.getActionCommand();
       if (str.equals(copy.getText())) { // 复制
        this.copy();
       } else if (str.equals(paste.getText())) { // 粘贴
        this.paste();
       } else if (str.equals(cut.getText())) { // 剪切
        this.cut();
       }
      }
    
      public JPopupMenu getPop() {
       return pop;
      }
    
      public void setPop(JPopupMenu pop) {
       this.pop = pop;
      }
    
      
      public boolean isClipboardString() {
       boolean b = false;
       Clipboard clipboard = this.getToolkit().getSystemClipboard();
       Transferable content = clipboard.getContents(this);
       try {
        if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) {
         b = true;
        }
       } catch (Exception e) {
       }
       return b;
      }
    
      
      public boolean isCanCopy() {
       boolean b = false;
       int start = this.getSelectionStart();
       int end = this.getSelectionEnd();
       if (start != end)
        b = true;
       return b;
      }
    
      public void mouseClicked(MouseEvent e) {
      }
    
      public void mouseEntered(MouseEvent e) {
      }
    
      public void mouseExited(MouseEvent e) {
      }
    
      public void mousePressed(MouseEvent e) {
       if (e.getButton() == MouseEvent.BUTTON3) {
        copy.setEnabled(isCanCopy());
        paste.setEnabled(isClipboardString());
        cut.setEnabled(isCanCopy());
        pop.show(this, e.getX(), e.getY());
       }
      }
    
      public void mouseReleased(MouseEvent e) {
      }
    
     }
    
    }
    

    2.:下拉式菜单的创建步骤:

    1.创建一个菜单栏。
    2.调用 Frame 的 setMenuBar()方法将菜单栏加入 Frame 中。
    3.分别创建若干个 Menu 对象,并加入 MenuBar 中。
    4.对于每个 Menu 对象,分别创建若干个 MenuItem 对象,并加入 Menu 中。
    在这里插入图片描述

    
    
    import java.awt.*;  
    
      
    
    public class MenuDemo {  
    
      
    
        Frame f;  
    
        MenuBar mb;  
    
        Menu menuFile;  
    
        MenuItem mItemNew, mItemOpen, mItemSave;  
    
      
    
        MenuDemo() {  
    
            f = new Frame("我的菜单实例");  
    
            f.setBounds(300, 100, 400, 300);  
    
      
    
            mb = new MenuBar(); // 创建菜单栏MenuBar  
    
            menuFile = new Menu("文件");   
    
      
    
            mItemNew = new MenuItem("新建");  
    
            mItemOpen = new MenuItem("打开");  
    
              
    
            menuFile.add(mItemNew);  
    
            mItemSave = new MenuItem("保存");  
    
              
    
            menuFile.add(mItemOpen);  
    
            // 加入分割线  
    
            menuFile.addSeparator();  
    
                    menuFile.add(mItemSave);  
    
                    mb.add(menuFile);   
    
                    // 菜单栏中加入“文件”菜单  
    
       
    
    // setMenuBar:将此窗体的菜单栏设置为指定的菜单栏。  
    
                    f.setMenuBar(mb);   
    
                    f.setVisible(true);  
    
              }  
    
        public static void main(String[] args) {  
    
            new MenuDemo();  
    
      }  
    
    }
    
    
    

    3:弹出式菜单的创建步骤:

    1.先建立最基本的JFrame框架.

    2.创建右键弹出式菜单(JPopupMenu)和添加的菜单项(JMenuItem). 3.使用add方法和insert方法向JPopupMenu中添加或者插入. 4.通过调用弹出式菜单触发器对应的show方法来显示弹出式菜单,检查所有的MouseEvent事件,看其是否是弹出式菜单触发器,然后在合适的时候显示弹出式菜单
    在这里插入图片描述

    
    
    import java.awt.event.*;  
    
    import javax.swing.*;  
    
      
    
    public class JPopMenu_Demo extends JFrame {  
    
      
    
        // 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口  
    
        JPopupMenu popupMenu;   
    
      
    
        public JPopMenu_Demo() {  
    
            super("右键弹出式菜单"); // 调用父类构造函数  
    
            // 实例化弹出菜单   
    
            popupMenu = new JPopupMenu();   
    
            // 增加菜单项到菜单上  
    
            popupMenu.add(new JMenuItem("菜单项"));  
    
            popupMenu.add(new JButton("按钮"));   
    
            popupMenu.add(new JLabel("标签"));  
    
      
    
            myEvents();  
    
      
    
            setSize(350, 300); // 设置窗口大小  
    
            setLocation(400, 200);  
    
            setVisible(true); // 设置窗口为可视  
    
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序  
    
        }  
    
      
    
        private void myEvents() {  
    
            // 窗口的鼠标事件处理  
    
            addMouseListener(new MouseAdapter() {   
    
                // 点击鼠标  
    
                public void mousePressed(MouseEvent event) {   
    
                    // 调用triggerEvent方法处理事件  
    
                    triggerEvent(event);   
    
                }  
    
                // 释放鼠标  
    
                public void mouseReleased(MouseEvent event) {   
    
                    triggerEvent(event);  
    
                }  
    
      
    
                private void triggerEvent(MouseEvent event) { // 处理事件  
    
                    // isPopupTrigger():返回此鼠标事件是否为该平台的弹出菜单触发事件。  
    
                    if (event.isPopupTrigger())   
    
                        // 显示菜单  
    
                        popupMenu.show(event.getComponent(), event.getX(),  
    
                                event.getY());   
    
                }  
    
            });  
    
        }  
    
      
    
        public static void main(String args[]) {  
    
            new JPopMenu_Demo();  
    
        }  
    
    }
    
    
    

    4:选项卡窗体:

    1.基本说明:

    2.常用方法:

    我们把多个JPanel的对象添加到 JTabbedPanel中去 。然后再
    JTabbedPanel 添加到窗体,代码如下:

    
    
    JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT) ; //设置选项卡在坐标
    
    JPanel p1=new JPanel() ;
    
    JPanel p2=new JPanel() ;
    
    JPanel p3=new JPanel() ;
    
    JPanel p4=new JPanel() ; //创建多个容器
    
    jp.add("窗体1", p1) ;
    
    jp.add("窗体2", p2) ;
    
    jp.add("窗体3", p3) ;//添加子容器,并且为选项卡添加名字
    
    this.add(jp,BorderLayout.CENTER); //将选项卡窗体添加到主窗体上去
    
    
    

    在这里插入图片描述

    
    
    import java.awt.*;  
    
    import javax.swing.*;  
    
      
    
    /** 
    
     * <p>Title: 选项卡演示</p> 
    
     * <p>Description: 这里是一个选项卡演示,点击不同的卡片,显示的内容不同</p> 
    
     */  
    
      
    
    public class JTabbedPaneDemo1 extends JPanel {  
    
          
    
        public JTabbedPaneDemo1() {  
    
            super(new GridLayout(1, 1));  
    
      
    
            ImageIcon icon = createImageIcon("images/MyIcon.gif");  
    
            JTabbedPane tabbedPane = new JTabbedPane();  
    
      
    
            Component panel1 = makeTextPanel("#第一个卡片#");  
    
            tabbedPane.addTab("One", icon, panel1, "第一个卡片提示信息!");  
    
            tabbedPane.setSelectedIndex(0);  
    
      
    
            Component panel2 = makeTextPanel("##第二个卡片##");  
    
            tabbedPane.addTab("Two", icon, panel2, "第二个卡片提示信息!");  
    
      
    
            Component panel3 = makeTextPanel("###第三个卡片###");  
    
            tabbedPane.addTab("Three", icon, panel3, "第三个卡片提示信息!");  
    
      
    
            Component panel4 = makeTextPanel("####第四个卡片####");  
    
            tabbedPane.addTab("Four", icon, panel4, "第四个卡片提示信息!");  
    
      
    
            // 将选项卡添加到panl中  
    
            add(tabbedPane);  
    
        }  
    
      
    
        /** 
    
         * <br> 
    
         * 方法说明:添加信息到选项卡中 <br> 
    
         * 输入参数:String text 显示的信息内容 <br> 
    
         * 返回类型:Component 成员对象 
    
         */  
    
        protected Component makeTextPanel(String text) {  
    
            JPanel panel = new JPanel(false);  
    
            JLabel filler = new JLabel(text);  
    
            filler.setHorizontalAlignment(JLabel.CENTER);  
    
            panel.setLayout(new GridLayout(1, 1));  
    
            panel.add(filler);  
    
            return panel;  
    
        }  
    
      
    
        /** 
    
         * <br> 
    
         * 方法说明:获得图片 <br> 
    
         * 输入参数:String path 图片的路径 <br> 
    
         * 返回类型:ImageIcon 图片对象 
    
         */  
    
        protected static ImageIcon createImageIcon(String path) {  
    
            // java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);  
    
            if (path != null) {  
    
                return new ImageIcon(path);  
    
            } else {  
    
                System.out.println("Couldn't find file: " + path);  
    
                return null;  
    
            }  
    
        }  
    
      
    
        public static void main(String[] args) {  
    
            // 使用Swing窗体描述  
    
            // JFrame.setDefaultLookAndFeelDecorated(true);  
    
      
    
            try {  
    
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
    
            } catch (Exception e) {  
    
                  
    
            }  
    
            // 创建窗体  
    
            JFrame frame = new JFrame("TabbedPaneDemo");  
    
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    
            frame.getContentPane().add(new JTabbedPaneDemo1(), BorderLayout.CENTER);  
    
      
    
            // 显示窗体  
    
            frame.setSize(400, 200);  
    
            frame.setVisible(true);  
    
        }  
    
    }  
    
    
    
    展开全文
  • winform不同窗体的传值(TreeView控件和右键弹出式菜单) 实现功能: ①可以新增子节点,新节点名在新窗口输入,点击确定把值传回主窗口,新增子节点,参考图3-2-2 ②可以修改节点的名称,方法与上类似。 ③创建窗体...

    winform不同窗体的传值(TreeView控件和右键弹出式菜单)

    实现功能:

    ①可以新增子节点,新节点名在新窗口输入,点击确定把值传回主窗口,新增子节点,参考图3-2-2

    ②可以修改节点的名称,方法与上类似。
    ③创建窗体3-2-1、3-2-2、3-2-3以实现不同窗体的传值

    ④窗体3-2-1中拖入控件:TreeView、ContextMenuStrip(右键弹出式菜单),Name属性之(ID)如下:

    在这里插入图片描述

    代码如下:

    //TreeView的“选中节点更改后”的事件
    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
    {
    //当选中某节点时,展开其子节点
    treeView1.SelectedNode.Expand();
    }

        //_3_2_1的“页面加载”事件
        private void _3_2_1_Load(object sender, EventArgs e)
        {
            //绑定  右键弹出菜单
            treeView1.ContextMenuStrip = contextMenutrip1;
        }
        //弹出式菜单中“加入子结点”项的click事件
        private void tsmInsert_Click(object sender, EventArgs e)
        {
            //为了使用_3_2_3中的公共变量而实例化f3
            _3_2_3 f3 = new _3_2_3();
            //为_3_2_3中的公共变量赋值为选中节点的名字
            f3.insertNode = treeView1.SelectedNode.Name;
            //将f3中实例化的f1赋值为该窗体
            f3.f1 = this;
            //将f3以非模式化形式(可切换窗体)打开
            f3.Show();
        }
        //弹出式菜单中“修改节点”项的click事件
        private void tsmEdit_Click(object sender, EventArgs e)
        {
            //为了使用_3_2_2中的公共变量
            _3_2_2 f2 = new _3_2_2();
            //为_3_2_2中的公共变量赋值为选中节点的名字
            f2.editNode = treeView1.SelectedNode.Name;
            //将f2中实例化的f1赋值为该窗体
            f2.f1 = this;
            //将f2以非模式化形式(可切换窗体)打开
            f2.Show();
        }
        //弹出式菜单中“删除节点”项的click事件
        private void tsmDelete_Click(object sender, EventArgs e)
        {
            //当用户单击“删除节点”时,弹出提示框,若单击“是”则删除,若单击“否”则不采取任何操作
            DialogResult dr = MessageBox.Show("是否确认删除?", "消息提醒", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (dr == DialogResult.Yes)
            {
                //删除节点
                treeView1.SelectedNode.Remove();
                MessageBox.Show("删除成功!");
            }
        }
        //当右键某节点时,将其选中
        private void treeView1_MouseDown(object sender, MouseEventArgs e)
        {
           //当右键时
            if (e.Button == MouseButtons.Right)
            {
                //用tn获得右键处节点的坐标
                TreeNode tn = treeView1.GetNodeAt(e.X, e.Y);
                //tn不为空,则使选中节点变为tn处的节点
                if (tn != null)
                    treeView1.SelectedNode = tn;
            }
        }
        //反向传值,使传回来的值作为新加入子节点的名字,达到加入子节点的目的
        public void insertNode_Function(string nodeName)
        {
            treeView1.SelectedNode.Nodes.Add(nodeName);
        }
        //反向传值,使传回来的值作为选中节点的新名字,达到修改节点名称的目的
        public void editNode_Function(string nodeName)
        {
            treeView1.SelectedNode.Text = nodeName;
        }
    

    ⑤窗体3-2-2中拖入控件:Lable、TextBox、Button,Button的Text属性改为“修改”,Name属性之(ID)如下:

    在这里插入图片描述

    代码如下:

    //创建公共变量,为了接收f1中传来的值
    public string editNode;
    //实例化f1,为了使用f1中创建的insertNode_Function()
    public _3_2_1 f1;
    public _3_2_2()
    {
    InitializeComponent();
    }
    //_3_2_3的“页面加载”事件
    private void _3_2_2_Load(object sender, EventArgs e)
    {
    //label作为页面提示,即“修改某某节点的节点名称:”
    label1.Text = “修改“” + editNode + “”的节点名称:”;
    }

        //_3_2_2中的“修改”按钮的click事件
        private void btnEdit_Click(object sender, EventArgs e)
        {
            //调用f1中的修改函数
            f1.editNode_Function(textBox1.Text);
            //关闭f2窗体
            this.Close();
            //提示“添加成功!”
            MessageBox.Show("修改成功!");
        }
    

    ⑥窗体3-2-3中拖入控件:Lable、TextBox、Button,Button的Text属性改为“添加”,Name属性之(ID)如下:

    在这里插入图片描述

    代码如下:

    //创建公共变量,为了接收f1中传来的值
    public string insertNode;
    //实例化f1,为了使用f1中创建的insertNode_Function()
    public _3_2_1 f1;
    public _3_2_3()
    {
    InitializeComponent();
    }
    //_3_2_3的“页面加载”事件
    private void _3_2_3_Load_1(object sender, EventArgs e)
    {
    //label作为页面提示,即“为某某节点添加子节点:”
    label1.Text = “为“” + insertNode + “”添加子节点:”;
    }
    //_3_2_3中的“添加”按钮的click事件
    private void btnInsert_Click(object sender, EventArgs e)
    {
    //调用f1中的添加函数
    f1.insertNode_Function(textBox1.Text);
    //关闭f3窗体
    this.Close();
    //提示“添加成功!”
    MessageBox.Show(“添加成功!”);
    }
    如有转载请注明来源: www.dreamload.cn/blog/?p=329&preview=true (洋葱先生)

    展开全文
  • VB如何创建弹出式菜单的例子,通过这例子你可快速上手制作Vb窗体设计中的弹出式菜单。也可称之是“右键菜单”吧,因为这种菜单是在窗口中单击鼠标右键后弹出的,很多软件使用过程中,都类似的菜单效果。
  • 通过弹出式菜单,实现窗体之间的切换,趣味调色板的程序段。。。
  • 创建和添加下拉式菜单,分为以下三个步骤 1.创建一个JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部 2.创建JMenu菜单对象,将其添加到JMenuBar菜单中 3.创建JMenuItem菜单项,将其添加到JMenu菜单中 package ...

    创建和添加下拉式菜单,分为以下三个步骤

    1.创建一个JMenuBar菜单栏对象,将其放置在JFrame窗口的顶部

    2.创建JMenu菜单对象,将其添加到JMenuBar菜单中

    3.创建JMenuItem菜单项,将其添加到JMenu菜单中

    package gui;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;

    public class T15 {
        public static void main(String[] args) {
            JFrame j = new JFrame("下拉式菜单");//创建窗体,名称为下拉式菜单
            JMenuBar mb = new JMenuBar();//创建菜单栏
            JMenu menu = new JMenu("操作");//创建菜单名称为操作
            JMenuItem item1 = new JMenuItem("弹出窗口");//创建菜单项名称为弹出窗口
            JMenuItem item2 = new JMenuItem("关闭");//创建菜单项名称为关闭
    //        为菜单项item1添加事件监听器
            item1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
    //                创建一个JDialog窗体
                    JDialog dialog = new JDialog(j,true);
                    dialog.setTitle("弹出窗口");
                    dialog.setSize(200,200);
                    dialog.setLocation(50, 50);
                    dialog.setVisible(true);
                }
            });
    //        为菜单项item2添加事件监听器
            item2.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
    //                退出
                    System.exit(0);
                }
            });
            
            menu.add(item1);//将菜单项添加到菜单中
            menu.add(item2);//将菜单项添加到菜单中
            mb.add(menu);//将菜单操作添加到菜单栏
            j.setJMenuBar(mb);//将菜单栏添加到JFrame窗体中
            
            j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            j.setSize(300,300);//设置窗体大小为宽300,高300
            j.setVisible(true);//设置窗体可见
        }
        
    }

    下面写弹出式菜单

    在windows桌面单击鼠标右键会出现一个菜单,那就是弹出式菜单。

    在JAVA中的Swing组件中,弹出式菜单用JPopupMenu表示

    package gui;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;

    import javax.swing.JFrame;
    import javax.swing.JMenuItem;
    import javax.swing.JPopupMenu;
    public class T16 {
        public static void main(String[] args) {
            JFrame j = new JFrame("弹出式菜单");
    //        创建一个JPopupMenu菜单
            JPopupMenu jpm = new JPopupMenu();
    //        创建三个JMenuItem菜单项
            JMenuItem item1 = new JMenuItem("refresh");
            JMenuItem item2 = new JMenuItem("create");
            JMenuItem item3 = new JMenuItem("exit");
    //        为exit添加监听器
            item3.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                }
            });
    //        往JPopupMenu菜单添加菜单项
            jpm.add(item1);
            jpm.add(item2);
            jpm.addSeparator();//添加水平分割线
            jpm.add(item3);
    //        为JFrame窗口添加鼠标clicked事件监听器
            j.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
    //                如果单击的是鼠标的右键,显示JPopupMenu菜单
                    if(e.getButton()==e.BUTTON3) {
                        jpm.show(e.getComponent(),e.getX(),e.getY());
                    }
                }
            });
            j.setSize(300,300);
            j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            j.setVisible(true);
        }
    }

     

     

    展开全文
  • c#右键窗体弹出菜单

    千次阅读 2019-02-26 11:16:00
    在工具箱(快捷键ctrl+w+x)——菜单和工具栏中找到 在属性中用这绑定 然后写后台代码 转载于:https://www.cnblogs.com/dengzhekaihua/p/10436098.html
  • 弹出式菜单PopMenu

    千次阅读 2013-12-17 17:04:36
    // 下拉 弹出 pop菜单 parent 右下角 public void showAsDropDown(View parent) { popupWindow.showAsDropDown(parent,-150,0);//showAsDropDown(View anchor, int xoff, int yoff)弹出对话框,位置在紧挨着...
  • 用Python就一定要用到界面操作,有一个好的用户界面,才会好的用户体验,下边就开始创建我们的主窗口,并实现下拉和弹出式菜单!案例创建主窗口,并实现下拉和弹出式菜单先上代码~运行效果题目详述第一行:import ...
  • 窗体动态菜单,个人感到挺好用,对于初学者帮助啊。
  • 窗体中没有先加入弹出式菜单,而是先加入其他组件,如文本区(JTextArea)。 问题原因: 链接: 链接地址. 这是我写的另篇博客,问题原因大致相同。 解决方法: 在窗体中先加入弹出式菜单组件再加入其他组件. 错误...
  • 1.GUI弹出式菜单的使用 在GUI上放上弹出式菜单,然后双击》属性检查器》string》更改string为想要的菜单值。例如 效果: 属性检查器里面的tag属性根据你的想法改,这里就以popupmenu1为属性名。 在程序中...
  • 弹出式菜单(快捷菜单):9,[14]1、 在菜单编辑器中建立菜单结构,主菜单设置为不可见2、 在窗体中调用菜单:popupmenu 主菜单的名称单击右键时调用:对象名称_MouseDown( )if button=2 thenpopupmenu 主菜单的名称...
  • 弹出式菜单

    2012-11-25 16:20:49
    调用API函数TrackPopupMenu可以在指定位置显示弹出式菜单 ///****************************************************************************************************** 建立基于对话框的工程PopMenuDemo 新
  • 创建弹出式菜单

    千次阅读 2015-08-10 11:39:56
    创建弹出式菜单时,先创建一个菜单资源,然后调用LoadMenu方法加载菜单资源。 BOOL LoadMenu( LPCTSTR lpszResourceName ); BOOL LoadMenu( UINT nIDResource ); 返回值:如果菜单资源装载成功,则返回非零值,...
  • pywinauto 使用menu_select()弹出一个窗体后,代码停止运行。变成等待事件触发的状态,可是我想用pywinauto代码来执行后洗操作,该怎么解决?
  • VC 6.0制作的弹出式菜单,代码作者:剑,这里主要是定义了CMainFrame::OnContextMenu函数来实现弹出式菜单,请参见以下核心代码:  void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point)  {   CMenu ...
  • Java弹出式菜单(PopupMenu)

    千次阅读 2012-05-09 17:01:23
    弹出式菜单(PopupMenu) 构造方法 public PopupMenu(); 例如:PopupMenu popM=new PopupMenu(); MenuItem miOpen=new MenuItem(“打开”); MenuItem miSave=new MenuItem(“保存”); popM.add(miOpen); popM.add...
  • 菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通... 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成。一般菜单栏放 Frame 窗口中,只要调用 Frame 类的 setMenuBar()方法即可。
  • 自定义PopupWindow实现底部弹出式菜单

    千次阅读 2016-07-13 16:15:38
    现在很多应用都采用底部弹出式菜单,觉得挺好看的,先上图 底部弹出菜单通过自定义PopupWindow实现,很简单的一个自定义 1.自定义PopupWindow代码:public class ModelPopup extends PopupWindow implements ...
  • winform菜单栏、快捷菜单、右键弹出式菜单基本操作 实现功能: ①在窗体是默认色的情况下,右键菜单“默认颜色”勾中;在窗体是完全不透明情况下,右键菜单“不透明”勾中 ②通过主菜单修改背景色后,右键菜单“默认...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,925
精华内容 3,570
关键字:

一个窗体只能有一个弹出式菜单