`
Jony.Hwong
  • 浏览: 116708 次
  • 来自: ...
社区版块
存档分类
最新评论

ListSelectionListener,鼠标选中,键盘选中

阅读更多
ListSelectionListener 的两次响应收藏
当用鼠标对表格进行选取,在响应行选取变化事件(ListSelectionListener)时,鼠标按下会响应一次,鼠标释放又会响应一次,因此一次鼠标的点击会有两次事件响应(按下和释放)。前者的事件属性中getValueIsAdjusting()=true,后者是false。因此,可以通过判断getValueIsAdjusting()来区别鼠标按下和释放,进行不同的操作。

而用键盘的上下键选取时,只有一次事件响应。

        table.getSelectionModel().addListSelectionListener(new TableRowModelListener(table));

	public class TableRowModelListener implements ListSelectionListener {
		private JTable table;

		public TableRowModelListener(JTable table) {
			this.table = table;
		}

		public void valueChanged(ListSelectionEvent e) {
			boolean b = table.getSelectionModel().getValueIsAdjusting();
			if(!b)
			System.out.println("ddddddddddd");
		}
	}
分享到:
评论
1 楼 linchixiong 2011-04-10  
学习了,最近做一个练习时发现了会响应两次,现在终于知道为什么了~

相关推荐

    Java Swing中JList选择事件监听器ListSelectionListener用法示例

    - `getLeadSelectionIndex()`:返回当前鼠标焦点所在的选中项的索引。 - `getMinSelectionIndex()` 和 `getMaxSelectionIndex()`:分别返回选中项中最小和最大的索引。 - `isSelectedIndex(int index)`:检查指定...

    Java Swing JList列表框的实现

    * addListSelectionListener(ListSelectionListener listener):添加选项选中状态被改变的监听器。 代码实例 以下是一个简单的 JList 实例代码: ```java package com.xiets.swing; import javax.swing.*; import...

    JTable示例源码(Swing demo)

    `JTable`还提供了其他事件处理,如`MouseListener`用于处理鼠标点击事件,`ActionListener`处理单元格编辑的确认操作等。这些事件处理机制使得用户与表格的交互更加丰富和灵活。 在`TableModelTest`这个源码文件中...

    java中为table添加监听

    这对于实现选中行的高亮或其他交互功能非常有用。 ```java ListSelectionModel selectionModel = table.getSelectionModel(); selectionModel.addListSelectionListener(new ListSelectionListener() { public ...

    下拉多选计算和

    - 添加ItemListener或者ListSelectionListener来监听用户的选择变化。每当用户选择或取消选择一个项目时,触发相应的事件处理器。 - 在事件处理器中,遍历当前选中的所有项目,获取它们的值,并进行求和操作。 4....

    高级swing组件PPT

    - **事件处理**:JTree支持鼠标和键盘事件,如点击、双击、拖放等,开发者可以通过添加TreeSelectionListener监听节点选择变化,TreeMouseListener监听鼠标操作等。 - **节点操作**:可以添加、删除、重命名树节点...

    java swing带复选框的JList控件

    由于 `JList` 不直接支持复选框事件,我们需要监听其 `ListSelectionListener`,以获取用户的选择变化。 ```java jList.addListSelectionListener(e -> { if (!e.getValueIsAdjusting()) { DefaultListModel...

    JList事件监听器的实现例子

    当列表的选择发生变化时,`valueChanged`方法会被调用,我们可以在这个方法中获取当前选中的元素。 ```java JList<String> list = new JList(model); list.addListSelectionListener(new ListSelectionListener() {...

    JTable实例,java表格实例

    `JTable`还支持各种事件监听,比如选中单元格时的`CellSelectionListener`,或点击表格时的`MouseListener`,这允许我们根据用户的交互来执行相应的操作。例如,我们可以添加一个`ListSelectionListener`来响应...

    java环境的简要列表控件

    例如,ListSelectionListener可以监听列表选择的变化,MouseListener和KeyboardListener则可以处理鼠标和键盘交互。 总结,Java中的列表控件,如JList和ListView,为开发者提供了强大而灵活的工具,用于创建具有...

    可视化组件:Swing JComponent总览

    它可以通过数组、集合或`ListModel`来构建数据源,并可以通过`ListSelectionListener`来监听用户的选择变化。此外,还支持自定义列表项的渲染方式。 5. **菜单项(JMenuItem)**:这是构成菜单的基本单位,可以嵌套...

    编程技能训练与等级考试辅导:组合框与列表框.pptx

    - `addListSelectionListener(listener : ListSelectionListener)`: 添加一个`ListSelectionListener`来监听条目选择的变化。 在`JListDemo.java`示例中,可能会实现选择国家后,右侧的标签显示相应的国旗。动态...

    Java的GUI编程之列表和组合框的设计使用

    - 当用户单击一个选项时,会产生一个`ListSelectionEvent`,你可以通过实现`ListSelectionListener`并调用`addListSelectionListener()`来监听这个事件。 `JList`的常见构造方法包括: - `JList()`:创建一个空的...

    JTable颜色渲染代码

    - **列选择允许**:`table.setColumnSelectionAllowed(true)`表示允许用户只选中一列而不选中整行。 - **自动调整大小模式关闭**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`表示关闭表格自动调整列宽的...

    2021年1月Java语言程序设计(一)试题答案参照.pdf

    6. 事件监听:`ListSelectionListener`是用于监听列表中选项被选中或取消选中的接口,因此选项B正确。 7. 绘图坐标系统:Java的绘图区域坐标原点位于左上角,因此选项A正确。 8. 线程同步:选项C正确,`notify()`...

    监听器案例(显示在线用户列表).rar_java_myyem_rockett3t

    2. **监听器接口**:Java提供了各种监听器接口,如 `ActionListener`(用于处理动作事件)、`MouseListener`(处理鼠标事件)和`KeyListener`(处理键盘事件)。在这个案例中,可能会用到 `ListModelListener` 或 `...

    JList的一些用法

    此外,`ListSelectionEvent`的`getValueIsAdjusting()`方法可以帮助区分持续的鼠标拖拽动作与最终的选择确定,从而实现更精细的交互控制。 对于鼠标双击事件,由于`JList`本身并不提供相应的事件处理,可以通过添加...

Global site tag (gtag.js) - Google Analytics