`
a1520708
  • 浏览: 28710 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swing JPopupMenu 单击按钮弹出 例子下载

 
阅读更多
swing JPopupMenu 单击按钮弹出 例子下载

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class Main {
  public static void main(String[] argv) throws Exception {
    final JPopupMenu menu = new JPopupMenu();

    JMenuItem item = new JMenuItem("Item Label");
    
    menu.add(item);

    final JButton component = new JButton("button");

    component.addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        if (SwingUtilities.isLeftMouseButton(e)) {
          menu.show(e.getComponent(), Math.round(component.getAlignmentX()) - 15, 
            Math.round(component.getAlignmentY()) + 20);
        }
      }

      public void mouseReleased(MouseEvent evt) {
        if (evt.isPopupTrigger()) {
          //menu.show(evt.getComponent(), evt.getX(), evt.getY());
        }
      }
    });

    SwingUtilities.invokeLater(new Runnable() {

      public void run() {
        try {
          UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
          e.printStackTrace();
        }
        JFrame frame = new JFrame("测试");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(800, 600));
        frame.setLocationRelativeTo(null);
        final JPanel mainPanel = new JPanel(new BorderLayout());

        JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));
        topPanel.add(component);

        mainPanel.add(topPanel, BorderLayout.NORTH);

        frame.getContentPane().setLayout(new BorderLayout());
        frame.getContentPane().add(mainPanel);

        frame.setVisible(true);
      }
    });
  }
}
分享到:
评论

相关推荐

    swing鼠标右键功能实现

    这个例子也使用`MouseListener`监听鼠标事件,但使用`mouseReleased`方法,因为对于Swing组件,右键释放会触发弹出菜单。 ```java addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e...

    精通Java Swing程序设计(中文CHM)

    - JPopupMenu:弹出菜单,常用于右键点击操作。 - JToolBar:工具栏,可放置常用操作按钮。 - JProgressBar和JSpinner:进度条和数值选择器,提供用户反馈。 6. **Swing外观(LookAndFeel)** - Swing支持不同...

    swing界面设计之JTree

    - **给JTree添加右键弹出菜单**:可以使用`JPopupMenu`来创建上下文菜单。 - **关于JTree的展开**:控制树节点的展开与折叠,包括默认展开所有节点等操作。 - **如何遍历JTree**:使用递归算法或`Enumeration`接口...

    java 菜单,邮件菜单,工具条的样例

    - "popmenudemo"可能是一个演示如何在Java Swing中创建弹出菜单(PopupMenu)的例子。弹出菜单通常在鼠标右键点击时出现,提供上下文相关的选项。你可以使用`JPopupMenu`类来创建一个弹出菜单,并将其添加到组件上...

    课程设计 java记事本 java代码注释

    - `JPopupMenu pm`: 弹出菜单。 - `JTextArea ta`: 文本区域。 - `boolean isNewFile`: 标记文件是否为新创建的。 - `File currentFile`: 当前打开的文件对象。 - `String oldValue`: 存储原始文本内容,用于判断...

    java编程-记事本-全部功能都实现.doc

    8. **JPopupMenu**和`JToolBar`: 这些是Swing中的弹出菜单和工具栏组件,用于提供额外的用户交互选项。 9. **JCheckBoxMenuItem**: 可能用于控制某些功能的状态,比如是否显示行号或者自动换行。 10. **布局管理**...

Global site tag (gtag.js) - Google Analytics