JTable监听器ListSelectionListener 每次选中调用两次

JTable中获取鼠标移动、点击以及内容改变事件 public void createFieldTable() { Vector header = new Vector(); header.add("字段名"); Map> tableContentMap = (Map>) tableContentMapVec.get(curSelectedTable); fieldNameVec.clear(); 阅读详情

前言

构建如下监听器

class DemoListListener implements ListSelectionListener {

      public void valueChanged (ListSelectionEvent e) {
      		System.out.println("DemoListListener ");
           // do something
      }
}

在JTable选中行的时候会调用两次,即运行结果为:

DemoListListener
DemoListListener


Solution

  1. 检查当前行是否正在被修改

调用e.getValueIsAdjusting();

class DemoListListener implements ListSelectionListener {

      public void valueChanged (ListSelectionEvent e) {
      		if(e.getValuesAddjusting())return;//检查是否正在被修改!
      		System.out.println("DemoListListener ");
           // do something
      }
}

Reference:

ListSelectionListener invoked twice

e.getValueIsAdjusting is what you are looking for. As stated in the javadoc of that method

  1. 添加MouseListener,实现MouseAdapter
   jTable.addMouseListener(new MouseAdapter() {
       @Override
       public void mouseClicked(MouseEvent e) {
           //do something
       }
   });
Java Swing桌面应用开发实战:从零构建单机版文件传输助手 桌面应用开发是连接用户与本地系统资源的重要桥梁,其核心在于通过图形用户界面(GUI)提供直观、高效的操作体验。Java Swing作为Java标准库的一部分,凭借其丰富的组件库和成熟的MVC架构思想,成为构建跨平台桌面应用的经典选择。在工程实践中,通过SwingWorker实现后台线程处理,能有效解决文件操作时的界面卡顿问题,提升应用响应性。结合文件系统操作、自定义组件渲染和事件驱动编程,开发者可以构建出功能完善、用户体验良好的单机工具。本文以开发一个本地文件管理助手为例,详细拆解了如何使用Swing实现目 阅读详情

相关推荐

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1023

Java踩坑笔记 —— Swing的JList组件绑定ListSelectionListener事件后会执行两次的解决方案

最近在开发Swing项目途中,使用到了JList组件,并且给组件加上了事件,但是写下相关代码后,会出现事件内执行两次的BUG出现,经过查阅资料和仔细排查,发现了问题!

Marinda_Speed的博客 945

详解modbus TCP通讯,并利用其实现欧姆龙PLC和西门子PLC的通讯

大家好,之前需要更新的MQTT通讯【2】因为硬件不足还不能发布出来,但最近在项目中涉及到西门子和欧姆龙之间的modbus TCP通讯,想到modbus TCP通讯是个非常常见并广泛使用的通讯协议,今天就结合最近做的测试给大家好好讲解一下,先提示一下,这边只给大家讲解如何实现,至于报文是什么,如何用socket来编写功能块或dll这边不会讲解,这块我会根据私信的小伙伴数量来考虑要不要出一篇如何用ST语言来编写modbus TCP功能块的博客。

dy186187的博客 1万+

Jtable用鼠标点击监听

文章目录一、Jtable的点击监听二、代码 一、Jtable的点击监听 1.table.getSelectedRow()可以获取选中行的下标 2.table.getValueAt(count,0).toString()获取指定行的某列元素,因为返回的是Object类型,所以需要将它转换为String类型使用 3.table.setSelectionModel().clearSeection()取消选中行 二、代码 table.addMouseListener(new MouseAdapter() {.

优快云 精品推荐 1374

实战指南 | 利用TSMaster的C小程序实时监控DBC报文发送周期

本文提供了一份利用TSMaster的C小程序实时监控DBC报文发送周期的实战指南。通过创建用户变量、编写C小程序核心逻辑并关联图形模块,工程师可以直观地可视化关键报文(如ID 0x64)的发送间隔,从而快速发现周期异常,提升汽车电子开发和测试中总线问题定位的效率与实时性。

weixin_29178069的博客 417

告别机床‘卡顿’!用C语言在STM32上实现连续小线段速度前瞻(附开源代码)

本文详细介绍了如何在STM32上使用C语言实现工业级连续小线段速度前瞻控制器,解决机床运动控制中的卡顿问题。通过轻量级算法框架设计和混合精度计算策略,显著提升加工效率和表面质量。文章包含开源代码和实战案例,帮助开发者快速掌握速度前瞻规划算法在嵌入式系统中的应用。

weixin_42571738的博客 185

JTabel选择表格事件监听时,用鼠标点击一次,会出现两次事件的原因。

1。选择某一行(当选择这一行时,需要产生某种事件) 当用鼠标对表格进行选取,在响应行选取变化事件(ListSelectionListener)时,鼠标按下会响应一次,鼠标释放又会响应一次,因此一次鼠标的点击会有两次事件响应(按下和释放)。前者的事件属性中getValueIsAdjusting()=true,后者是false。因此,可以通过判断getValueIsAdjusting()来区别鼠

臻氏一切Mr.RainDrop 6614

2025年VSCode AI插件实战:如何用Devika+Continue+Tabby三件套10倍提升开发效率

本文详细介绍了2025年VSCode AI插件Devika、Continue和Tabby的三件套组合,如何通过智能开发工作流10倍提升开发效率。从项目架构生成到上下文感知辅助,再到本地化智能编码,这套方案实现了从需求分析到代码生成的全流程自动化,特别适合中大型项目开发。

weixin_26911099的博客 269

JTabel鼠标按下与放开getValueIsAdjusting()

jtable1.getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) {...

小冰的程序员之旅 1427

STEP 7-Micro/WIN SMART 编程软件:从入门到精通的使用指南

通过不断实践,熟悉软件的各项功能和操作技巧,工程师可更好地应对工业自动化控制中的各种挑战,开发出高效、稳定的控制程序。项目的基本组件是构成程序的核心元素,包括:程序块(主程序 OB1、子程序和中断程序)、数据块(给 V 存储器赋初值)、系统块(硬件组态和参数设置)、符号表(用符号代替存储器地址,使程序更易理解)以及状态图表(监视、修改和强制变量状态)。下载程序时,单击工具栏上的 “下载” 按钮,在弹出的下载对话框中选择要下载的块(程序块、数据块、系统块),单击 “下载” 即可。

电工 5569

Autosar_MCAL_Port

PORT Driver就是对微控制器(MCU)的整个PORT模块进行初始化配置。很多端口和管脚被分配有多种不同的功能,即可以进行引脚功能复用,比如通用I/O、adc、pwm、spi等功能。因此,对PORT必须有一个整体的配置和初始化,对各管脚的具体配置和使用取决于微控制器和ECU的引脚功能分配。PORT初始化数据应当尽可能高效地写到每个端口。DIO驱动中所用到的端口的配置和初始化都是在PORT驱动模块中完成的。因此,在使用DIO功能之前,应先进行PORT的初始化。1、PortContainer说明。

不断debug,优化中…… 238

jTable选择的行改变事件

 //选择的行改变事件        jTable_data.getSelectionModel().addListSelectionListener(new ListSelectionListener(){            public void valueChanged(ListSelectionEvent e) {                //鼠标按下时bl=

xushuang1987的专栏 4693

uniapp - 解决报错 canvasToTempFilePath: fail canvas is empty 画布为空错误,生成海报相册、二维码、条码、裁剪/拼合操作图片报错,加了this还是报错

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,canvasToTempFilePath:失败画布为空,报错,canvasToTempFilePath:failcanvasisempty,不支持2d,还是报错,this,加上this还是报错,vue3没有this怎么办?海报,保存到手机相册,生成二维码,显示条码,图像裁切,图片处理,canvas报错,无法解决,还是fail,依然报错,传了this也不好使,Uniapp小程序,如何解决这个问题

🏆 前端领域优质创作者 4706

Swing-JList选择事件监听器ListSelectionListener-入门

当JList中的元素被选中时,选择事件将被触发。对于JTable也是一样,你可以把它看做是多个并列的JList。那么,如果程序需要对该事件做出响应,需要以下步骤: (1)创建一个实现了ListSelectionListener的监听器; (2)使用JList或selectionModel的addListSelectionListener添加监听器; (3)在监听器的valueChanged...

weixin_34174422的博客 1034

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jtable如何从表格中定位_java – 如何确定JTable中的哪个单元格被选中?

我在GUI中有一个JTable,我想根据用户点击的单元格的值返回一个数字.这是代码:ListSelectionModel newmodel = mytable.getSelectionModel();newmodel.addListSelectionListener(new ListSelectionListener() {@Overridepublic void valueChanged(Lis...

weixin_34365042的博客 564

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jtable选中指定的行和选中事件监听

选中行 table.getSelectionModel().setSelectionInterval(startRowIndex, endRowIndex); 监听选择事件 [code="java"] table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){ @Overri...

newslxw 8310

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java jlist监听_Swing-JList选择事件监听器ListSelectionListener-入门

/** Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the fol...

weixin_31499719的博客 760

java jtable setmodel_Java JTable.setSelectionModel方法代码示例

import javax.swing.JTable; //导入方法依赖的package包/类public PhotoList(ZooracleContentPanel zooracleContentPanel){this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));this.zooracleContentPanel = zooracleCont...

weixin_34523442的博客 434

java jtable选择行事件_Java Swing - 如何句柄列表选择JTable中的事件

import javax.swing.JTable;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;public class Main {public static void main(String[] argv) throws Exception {JTable ...

weixin_32605973的博客 465

java表格标题栏_Java MFixedColumnTable (提供行标题栏的表格)

可以以一列或多列为行标题栏。预览:代码:package com.han;import java.awt.BorderLayout;import java.util.Vector;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JViewport...

weixin_39650745的博客 112

JAVA语言版之字体格式设置对话框的编程实现

在编写自己的记事本小程序时,为了给里面的文本设置格式,需要一个格式对话框来进行这方面的设置,但是,在JAVA中,并没有现成的字体格式设置对话框供我们使用,这时,我们就需要自己去设计一个对话框。接下来讲述一下自己的实现。 首先发个截图看看我的对话框的效果是怎样的吧,如下所示: 在上图中我们可以看到,整个字体设置对话框包含四个部分,分别为字体的选择,字形的选择,字体大小的设置以及字体样式的示例

马靖的个人技术博客 5520

Table 组件使用指南:定制SelectionListener

运行环境:JDeveloper 11.1.2.1.0 + Oracle Database 10g Express Edition 10.2.0.1。 Table的默认Selection Listener形如:selectionListener="#bindings.JobsView1.collectionModel.makeCurrent}"。 有时我们需要定制化Table的Selecti

爱生活、爱dota、爱魔兽、爱编程、我不大梦想却很大.请不要叫我修电脑-告诉你我不会,我是--程序员 1676

java swing: JList ListSelectionListener 响应两次的解决办法

valueChanged()方法总是被执行两次,鼠标点击执行一次,鼠标释放执行一次。 所以注意在valueChanged()里面添加的操作,如果两次执行会影响结果的话,可以用JList.getValueIsAdjusting()判断。 鼠标点击,getValueIsAdjusting() 返回True. 鼠标释放,getValueIsAdjusting() 返回False。  ...

youran02100210的专栏 631

ListSelectionListener()与MouseAdapter()配合使操作只响应一次

研究该问题的先导: ListSelectionListioner,就是在列表被鼠标选中时触发事件。鼠标按下会响应一次,鼠标释放又会响应一次,因此一次鼠标的点击会有两次事件响应(按下和释放)。当用键盘上下键时,只响应一次。 要实现这样的功能: 任何情况下只响应一次。 wordList.addListSelectionListener(new ListSelectionListener() { ...

aass5573450的博客 1077

element 表格(多选) 初始化多次调用其他方法问题

需求:一个table表格带有多选功能,勾选一个就发送一次请求;在初始化查询的时候需要将之前勾选的行数需要展示出来。 根据element-ui官方文档,搭建表格: HTML部分 <div class="table"> <div class="div">进入页面默认勾选第1、3两行</div> <el-table ref="multipleTable" :data="tableData" .

axin__的博客 1278
上一篇: 一个好问题的格式
下一篇: 在git bash里面使用python
coderALEX
博客等级 码龄11年 19粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值