在Java程序,如何实现自适应位置的快捷菜单

原创 2002年05月02日 10:29:00

做界面时,常用到快捷菜单(JPopupMenu), 可JPopupMenu本身没办法根据鼠标位置来自动调整菜单位置使全部菜单可见,为此我专门写了一个可自适应位置的快捷菜单,代码如下:



import javax.swing.*;
import java.awt.*;



/**
 * <p>Copyright: Copyright (c) 2002</p>
 * @author Turbo Chen
 * @version 1.01
 */
public class CJPopupMenu extends JPopupMenu
{



    public void show(Component invoker,int x, int y)
    {
        Point ps = invoker.getLocationOnScreen();
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        int mw = this.getPreferredSize().width;
        int mh = this.getPreferredSize().height;
        int newX = x;
        int newY = y;
        int aX = ps.x+x+mw;
        int aY = ps.y+y+mh;
        if ( aX>d.width )
            newX = x -(aX - d.width);
        if ( aY>d.height )
            newY = y -(aY - d.height);
        super.show(invoker,newX,newY);
    }
}



这个类重载了public void show(Component invoker,int x, int y)方法来实现自适应位置功能.

在Java程序,如何实现自适应位置的快捷菜单

  • zgqtxwd
  • zgqtxwd
  • 2008年04月25日 17:50
  • 142

VS2008中VC++添加快捷菜单

在VS2008中使用vc时候添加快捷菜单,首先利用资源管理器添加一个菜单:                                                               ...
  • jiangzhaopu
  • jiangzhaopu
  • 2013年02月28日 21:58
  • 1241

VS2013MFC单文档创建右键快捷菜单

新建MFC单文档的项目,命名为MenuOnRight: 在资源视图中添加资源Menu,ID_MENU1,Alt+Enter修改其属性,ID改为ID_RIGHTMENU 为新菜单添加内容 Cr...
  • Tan_HandSome
  • Tan_HandSome
  • 2015年08月06日 10:44
  • 2159

快捷菜单显示位置

//菜单条显示及动作             document.onmouseover = mouseDown;        var posX,posY;        var obj;      ...
  • nanali32
  • nanali32
  • 2013年10月11日 12:57
  • 493

Qt 实现窗体控件自适应

打开.ui文件 最外面Grid LayOut
  • suxw80then
  • suxw80then
  • 2014年06月21日 21:24
  • 4077

css+html实现自适应宽度的菜单学习

本文是利用css和html实现自适应于文本长度菜单。 实现后的效果图,如下: 实现代码如下: menu4.html ...
  • wj903829182
  • wj903829182
  • 2014年08月23日 09:27
  • 2062

js菜单自适应的实现

实现菜单自适应
  • ruangong1203
  • ruangong1203
  • 2016年09月28日 12:01
  • 521

3D Touch开发之App 快速入口标签(快捷菜单)

一、简介:自从苹果公司引入了 3D Touch 功能后,众多开发者,也开在自己的app上实现自己的 3D Touch 效果,今天我也来小秀一把。我们先来看看,3D Touch 下的 app 快速启动入...
  • zhengang007
  • zhengang007
  • 2015年12月16日 11:45
  • 1502

labview通过编程自定义控件运行时快捷菜单

菜单分为VI的菜单和控件的菜单,一下为空间的菜单动态使用方法: 按照下列步骤,通过编程自定义控件的菜单。 在前面板上添加一个输入控件。本例中使用数值输入控件。 在程序框图上放置一...
  • mfcjishiben
  • mfcjishiben
  • 2015年03月26日 14:36
  • 3236

VC++6.0实现快捷菜单

VC++6.0实现快捷菜单,至少有2种方式,一种方式直接点击“工程”->"添加工程"->"Components and  Controls",选择“Visual C++ Components"目录下的...
  • xinanzhung
  • xinanzhung
  • 2013年03月20日 22:51
  • 678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Java程序,如何实现自适应位置的快捷菜单
举报原因:
原因补充:

(最多只允许输入30个字)