【问题标题】:Get the item in the SWT list on Mouse Up在 Mouse Up 上获取 SWT 列表中的项目
【发布时间】:2014-12-22 17:45:18
【问题描述】:

我想知道是否有可能在鼠标上移时获取列表中的项目?我在网上搜索并找到了许多使用 X 和 Y 坐标但没有使用列表的 SWT 表示例。我基本上在做的是实现一个列表,其中项目的顺序可以通过拖放来更改。为此,我需要能够获取放置位置下的项目,以便我可以将该项目与拖动的项目交换。

【问题讨论】:

    标签: java drag-and-drop swt


    【解决方案1】:

    List#getItemHeight() 返回一项所占区域的高度。有了这些信息和getTopIndex()you 应该能够计算给定 x 和 y 坐标的项目。

    list.addListener( SWT.MouseDown, new Listener() {
      @Override
      public void handleEvent( Event event ) {
        int itemTop = 0;
        for( int i = 0; i < list.getItemCount(); i++ ) {
          if( event.y >= itemTop && event.y <= itemTop + list.getItemHeight() ) {
            System.out.println( "Click on item " + list.getItem( list.getTopIndex()  + i ) );
          }
          itemTop += list.getItemHeight();
        }
      }
    } );
    

    或者,您可以使用带有setHeaderVisible( false ) 的单列表来模拟列表小部件。该表格提供了更好的开箱即用拖放支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多