模块  java.desktop
软件包  javax.swing

Class DefaultListSelectionModel

    • 字段详细信息

      • leadAnchorNotificationEnabled

        protected boolean leadAnchorNotificationEnabled
        是否启用了主要锚点通知。
    • 构造方法详细信息

      • DefaultListSelectionModel

        public DefaultListSelectionModel()
    • 方法详细信息

      • setSelectionMode

        public void setSelectionMode​(int selectionMode)
        设置选择模式。 以下列表描述了可接受的选择模式:
        • ListSelectionModel.SINGLE_SELECTION - 一次只能选择一个列表索引。 在此模式下, setSelectionIntervaladdSelectionInterval是等效的,它们都用第二个参数(“lead”)表示的索引替换当前选择。
        • ListSelectionModel.SINGLE_INTERVAL_SELECTION - 一次只能选择一个连续的间隔。 在此模式下, addSelectionInterval行为类似于setSelectionInterval (替换当前选择),除非给定的间隔与现有选择紧邻或重叠,因此可用于增长它。
        • ListSelectionModel.MULTIPLE_INTERVAL_SELECTION - 在此模式下,可以选择的内容没有限制。
        Specified by:
        setSelectionModeListSelectionModel
        参数
        selectionMode - 选择模式
        异常
        IllegalArgumentException - 如果选择模式不是允许的模式之一
        另请参见:
        ListSelectionModel.getSelectionMode()
      • fireValueChanged

        protected void fireValueChanged​(boolean isAdjusting)
        通知听众我们已经结束了一系列调整。
        参数
        isAdjusting - 如果这是一系列调整的最终更改, isAdjusting true
      • fireValueChanged

        protected void fireValueChanged​(int firstIndex,
                                        int lastIndex)
        通知 ListSelectionListeners该选择的值,在闭区间 firstIndexlastIndex ,已经改变。
        参数
        firstIndex - 间隔中的第一个索引
        lastIndex - 间隔中的最后一个索引
      • fireValueChanged

        protected void fireValueChanged​(int firstIndex,
                                        int lastIndex,
                                        boolean isAdjusting)
        参数
        firstIndex - 间隔中的第一个索引
        lastIndex - 间隔中的最后一个索引
        isAdjusting - 如果这是一系列调整的最终更改, isAdjusting true
        另请参见:
        EventListenerList
      • getListeners

        public <T extends EventListener> T[] getListeners​(<T> listenerType)
        返回此模型上当前注册为FooListener的所有对象的数组。 FooListener s使用addFooListener方法注册。

        您可以使用类文字指定listenerType参数,例如FooListener.class 例如,您可以使用以下代码查询DefaultListSelectionModel实例m以获取其列表选择侦听器:

          ListSelectionListener[] lsls = (ListSelectionListener[])(m.getListeners(ListSelectionListener.class)); 
        如果不存在此类侦听器,则此方法返回空数组。
        参数类型
        T - 要求的 EventListener类的类型
        参数
        listenerType - 请求的侦听器类型; 此参数应指定从java.util.EventListener的接口
        结果
        此模型上注册为 FooListener的所有对象的数组,如果未添加此类侦听器,则为空数组
        异常
        ClassCastException - 如果 listenerType未指定实现 java.util.EventListener的类或接口
        从以下版本开始:
        1.3
        另请参见:
        getListSelectionListeners()
      • setLeadAnchorNotificationEnabled

        public void setLeadAnchorNotificationEnabled​(boolean flag)
        设置leadAnchorNotificationEnabled标志的值。
        参数
        flag -布尔值 leadAnchorNotificationEnabled
        另请参见:
        isLeadAnchorNotificationEnabled()
      • isLeadAnchorNotificationEnabled

        public boolean isLeadAnchorNotificationEnabled()
        返回leadAnchorNotificationEnabled标志的值。 leadAnchorNotificationEnabled为真时,模型会生成通知事件,其范围涵盖选择的所有更改以及对潜在客户和锚索引的更改。 将标志设置为false会导致事件边界的缩小,以仅包括自上次更改以来已选择或取消选择的元素。 无论哪种方式,模型都会继续在内部维护主变量和锚点变量。 默认值为true。

        注意:可以在不更改选择的情况下更改导联或锚点。 通知这些更改通常很重要,例如需要在视图中更新新的潜在客户或锚点时。 因此,在更改默认值时要小心。

        结果
        leadAnchorNotificationEnabled标志的值
        另请参见:
        setLeadAnchorNotificationEnabled(boolean)
      • setSelectionInterval

        public void setSelectionInterval​(int index0,
                                         int index1)
        将选择更改为index0index1含)。 index0不必小于或等于index1

        SINGLE_SELECTION选择模式中,仅使用第二个索引。

        如果这表示对当前选择的更改,则会通知每个ListSelectionListener更改。

        如果任一索引是-1 ,则此方法不执行任何操作,并且无异常返回。 否则,如果任一索引小于-1 ,则抛出IndexOutOfBoundsException

        Specified by:
        setSelectionInterval ,界面 ListSelectionModel
        参数
        index0 - 间隔的一端。
        index1 - 间隔的另一端
        异常
        IndexOutOfBoundsException - 如果任一索引小于 -1 (且两个索引都不是 -1
        另请参见:
        ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)
      • addSelectionInterval

        public void addSelectionInterval​(int index0,
                                         int index1)
        将选择更改为当前选择的集合并且index0index1之间的索引。

        SINGLE_SELECTION选择模式中,这相当于调用setSelectionInterval ,并且仅使用第二个索引。 SINGLE_INTERVAL_SELECTION选择模式下,此方法的行为类似于setSelectionInterval ,除非给定的间隔与现有选择紧邻或重叠,因此可用于增长它。

        如果这表示对当前选择的更改,则会通知每个ListSelectionListener更改。 请注意, index0不必小于或等于index1

        如果任一索引是-1 ,则此方法不执行任何操作,并且无异常返回。 否则,如果任一索引小于-1 ,则抛出IndexOutOfBoundsException

        Specified by:
        addSelectionInterval在界面 ListSelectionModel
        参数
        index0 - 间隔的一端。
        index1 - 间隔的另一端
        异常
        IndexOutOfBoundsException - 如果任一索引小于 -1 (并且两个索引都不是 -1
        另请参见:
        ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)setSelectionInterval(int, int)
      • removeSelectionInterval

        public void removeSelectionInterval​(int index0,
                                            int index1)
        将选择更改为当前选择与index0index1含)之间的指数的设置差异。 index0不必小于或等于index1

        SINGLE_INTERVAL_SELECTION选择模式中,如果删除将产生两个不相交的选择,则删除将通过选择的较大端进行扩展。 例如,如果选择是0-10并且您提供索引5,6 (以任何顺序),则结果选择为0-4

        如果这表示对当前选择的更改,则会通知每个ListSelectionListener更改。

        如果任一索引是-1 ,则此方法不执行任何操作,并且无异常返回。 否则,如果任一索引小于-1 ,则抛出IndexOutOfBoundsException

        Specified by:
        removeSelectionInterval ,界面 ListSelectionModel
        参数
        index0 - 间隔的一端
        index1 - 间隔的另一端
        异常
        IndexOutOfBoundsException - 如果任一索引小于 -1 (并且两个索引都不是 -1
        另请参见:
        ListSelectionModel.addListSelectionListener(javax.swing.event.ListSelectionListener)
      • insertIndexInterval

        public void insertIndexInterval​(int index,
                                        int length,
                                        boolean before)
        在索引之前/之后插入长度索引。 如果索引处的值本身已选中且选择模式不是SINGLE_SELECTION,请将所有新插入的项目设置为选中。 否则将他们取消选中。 通常调用此方法以使选择模型与数据模型中的相应变化同步。
        Specified by:
        insertIndexIntervalListSelectionModel
        参数
        index - 间隔的开始
        length - 间隔的长度
        before - 如果 true ,间隔在 index之前插入,否则,间隔在 index之后插入
      • removeIndexInterval

        public void removeIndexInterval​(int index0,
                                        int index1)
        从选择模型中删除区间index0,index1(包括)中的索引。 这通常被称为使选择模型宽度与数据模型中的相应变化同步。 注意(一如既往)index0不必是<= index1。
        Specified by:
        removeIndexInterval ,界面 ListSelectionModel
        参数
        index0 - 间隔的开始
        index1 - 间隔结束
      • toString

        public String toString()
        返回显示和标识此对象属性的字符串。
        重写:
        toString在类 Object
        结果
        这个对象的 String表示
      • setLeadSelectionIndex

        public void setLeadSelectionIndex​(int leadIndex)
        设置潜在客户选择索引,确保锚点和新潜在客户之间的值全部被选中或全部取消选择。 如果选择锚索引处的值,首先清除[anchor,oldLeadIndex]范围内的所有值,然后选择[anchor,newLeadIndex]范围内的所有值值,其中oldLeadIndex是旧的leadIndex,newLeadIndex是新的一。

        如果未选择锚索引处的值,则在反向选择旧范围中的值并取消选择新值中的值时执行相同操作。

        为此更改生成单个事件并通知所有侦听器。 为了在此事件中生成最小边界,请在单个过程中执行操作; 这样,广播的ListSelectionEvent中的第一个和最后一个索引将引用由于此方法而实际更改值的单元格。 相反,如果此操作分两步完成,则对选择状态的影响将相同,但会生成两个事件,并且更改值周围的边界将更宽,包括先被清除但后来才被设置的单元格。

        此方法可用于UI类的mouseDragged方法以扩展选择。

        Specified by:
        setLeadSelectionIndex在接口 ListSelectionModel
        参数
        leadIndex - 潜在客户选择指数
        另请参见:
        ListSelectionModel.getLeadSelectionIndex(), setAnchorSelectionIndex(int)