CSDN博客

img turbochen

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

发表于2002/5/2 10:29:00  1430人阅读

做界面时,常用到快捷菜单(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)方法来实现自适应位置功能.

0 0

相关博文

我的热门文章

img
取 消
img