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");
}
}
分享到:
相关推荐
- `getLeadSelectionIndex()`:返回当前鼠标焦点所在的选中项的索引。 - `getMinSelectionIndex()` 和 `getMaxSelectionIndex()`:分别返回选中项中最小和最大的索引。 - `isSelectedIndex(int index)`:检查指定...
* addListSelectionListener(ListSelectionListener listener):添加选项选中状态被改变的监听器。 代码实例 以下是一个简单的 JList 实例代码: ```java package com.xiets.swing; import javax.swing.*; import...
`JTable`还提供了其他事件处理,如`MouseListener`用于处理鼠标点击事件,`ActionListener`处理单元格编辑的确认操作等。这些事件处理机制使得用户与表格的交互更加丰富和灵活。 在`TableModelTest`这个源码文件中...
这对于实现选中行的高亮或其他交互功能非常有用。 ```java ListSelectionModel selectionModel = table.getSelectionModel(); selectionModel.addListSelectionListener(new ListSelectionListener() { public ...
- 添加ItemListener或者ListSelectionListener来监听用户的选择变化。每当用户选择或取消选择一个项目时,触发相应的事件处理器。 - 在事件处理器中,遍历当前选中的所有项目,获取它们的值,并进行求和操作。 4....
- **事件处理**:JTree支持鼠标和键盘事件,如点击、双击、拖放等,开发者可以通过添加TreeSelectionListener监听节点选择变化,TreeMouseListener监听鼠标操作等。 - **节点操作**:可以添加、删除、重命名树节点...
由于 `JList` 不直接支持复选框事件,我们需要监听其 `ListSelectionListener`,以获取用户的选择变化。 ```java jList.addListSelectionListener(e -> { if (!e.getValueIsAdjusting()) { DefaultListModel...
当列表的选择发生变化时,`valueChanged`方法会被调用,我们可以在这个方法中获取当前选中的元素。 ```java JList<String> list = new JList(model); list.addListSelectionListener(new ListSelectionListener() {...
`JTable`还支持各种事件监听,比如选中单元格时的`CellSelectionListener`,或点击表格时的`MouseListener`,这允许我们根据用户的交互来执行相应的操作。例如,我们可以添加一个`ListSelectionListener`来响应...
例如,ListSelectionListener可以监听列表选择的变化,MouseListener和KeyboardListener则可以处理鼠标和键盘交互。 总结,Java中的列表控件,如JList和ListView,为开发者提供了强大而灵活的工具,用于创建具有...
它可以通过数组、集合或`ListModel`来构建数据源,并可以通过`ListSelectionListener`来监听用户的选择变化。此外,还支持自定义列表项的渲染方式。 5. **菜单项(JMenuItem)**:这是构成菜单的基本单位,可以嵌套...
- `addListSelectionListener(listener : ListSelectionListener)`: 添加一个`ListSelectionListener`来监听条目选择的变化。 在`JListDemo.java`示例中,可能会实现选择国家后,右侧的标签显示相应的国旗。动态...
- 当用户单击一个选项时,会产生一个`ListSelectionEvent`,你可以通过实现`ListSelectionListener`并调用`addListSelectionListener()`来监听这个事件。 `JList`的常见构造方法包括: - `JList()`:创建一个空的...
- **列选择允许**:`table.setColumnSelectionAllowed(true)`表示允许用户只选中一列而不选中整行。 - **自动调整大小模式关闭**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`表示关闭表格自动调整列宽的...
6. 事件监听:`ListSelectionListener`是用于监听列表中选项被选中或取消选中的接口,因此选项B正确。 7. 绘图坐标系统:Java的绘图区域坐标原点位于左上角,因此选项A正确。 8. 线程同步:选项C正确,`notify()`...
2. **监听器接口**:Java提供了各种监听器接口,如 `ActionListener`(用于处理动作事件)、`MouseListener`(处理鼠标事件)和`KeyListener`(处理键盘事件)。在这个案例中,可能会用到 `ListModelListener` 或 `...
此外,`ListSelectionEvent`的`getValueIsAdjusting()`方法可以帮助区分持续的鼠标拖拽动作与最终的选择确定,从而实现更精细的交互控制。 对于鼠标双击事件,由于`JList`本身并不提供相应的事件处理,可以通过添加...