java - JPopupMenu 打开时开始鼠标拖动?

标签 java swing drag-and-drop jpopupmenu

我有一个弹出菜单,当鼠标悬停在组件上时会打开该菜单。现在我希望能够在弹出窗口仍然打开时开始拖动组件,但弹出菜单关闭事件总是消耗第一次鼠标单击。有解决方法吗?

最佳答案

     public class A
    .....
    implements MouseListener, ActionListener
      {
     JPopupMenu pmnu ;
    JMenuItem setcol ;

   JList lst ;
  Component cmp = null ;
 int x = 0, y = 0;
  ...
 private void
 pop ( MouseEvent ev )
 {
if ( ev.isPopupTrigger ()  )
 {
 cmp = ev.getComponent () ;
 x = ev.getX () ;
 y = ev.getY () ;
pmnu.show ( cmp, x, y ) ;
}
}
 public void mouseDragged( MouseEvent ev )
{
 pop ( ev ) ;
}
public void mouseReleased ( MouseEvent ev )
{
 pop ( ev ) ;
}
public void     actionPerformed( ActionEvent ev )
{
 Object src = ev.getSource() ;

 if ( src == setcol  &&  cmp != null )
 {
 cmp.setBackground ( Color.yellow ) ;
 return ;
}
}
public   A( )
{
pmnu = new JPopupMenu () ;

 setcol = new JMenuItem ( "Set color" ) ;

 pmnu.add ( setcol ) ;
....
}

public void
init()
{
 setcol.addActionListener ( this ) ;
....
 lst.addMouseListener ( this ) ;
 }
 public void mouseClicked(MouseEvent ev) {}
 public void mouseEntered(MouseEvent ev) {}
 public void mouseExited(MouseEvent ev) {}
}

关于java - JPopupMenu 打开时开始鼠标拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759838/

相关文章:

JavaScript 拖放代理

java - JSerialComm 无法读取或关闭 Mac 上的端口

java - 将txt加载到JTable时如何显示空列?

java - 奇怪的 AllOf hamcrest 匹配器不匹配描述

java - 在不知道进度的情况下更新 JProgressBar

java - 定位 JFrame

java - JGraphX : "InvalidDnDOperationException: Drag and drop in progress" when using Swing Node in JavaFX

reactjs - React-DnD 中是否有任何选项,可以基于与放置目标中超过 50% 的区域相交的拖动对象来启用放置目标?

java - 创建行程成本计算器

java - 为什么与 "for"循环相比,Java 流的性能会因工作量相对较大而下降?