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

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航