首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jtable丢失多行选择,当单击其中一列中的按钮时

Jtable是一个Java Swing组件,用于显示和编辑表格数据。当在Jtable中选择多行时,如果单击其中一列中的按钮,可能会导致多行选择丢失的问题。

这个问题通常是由于Jtable的默认行为引起的。在Jtable中,当单击某一行时,该行会被选中,而其他已选中的行会被取消选中。因此,当单击按钮时,按钮所在的行会被选中,而其他已选中的行会被取消选中,导致多行选择丢失。

要解决这个问题,可以使用以下方法之一:

  1. 自定义按钮渲染器和编辑器:通过自定义按钮渲染器和编辑器,可以在按钮所在的列中保持多行选择。具体步骤如下:
    • 创建一个自定义的按钮渲染器,继承自DefaultTableCellRenderer类,并重写getTableCellRendererComponent方法,确保按钮在选中和非选中状态下都能正确显示。
    • 创建一个自定义的按钮编辑器,继承自DefaultCellEditor类,并重写getTableCellEditorComponent方法,确保按钮在编辑状态下能正确响应点击事件。
    • 将自定义的按钮渲染器和编辑器应用到按钮所在的列中,使用Jtable的setDefaultRenderer和setDefaultEditor方法。
  • 使用表格模型保存选择状态:通过在表格模型中保存选择状态,可以在按钮点击后恢复多行选择。具体步骤如下:
    • 在表格模型中添加一个布尔类型的字段,用于保存每一行的选择状态。
    • 在按钮的点击事件中,获取按钮所在的行,并更新该行的选择状态。
    • 在表格的选择事件中,根据保存的选择状态更新表格的选择状态。

无论使用哪种方法,都需要确保在按钮点击事件中不会丢失多行选择。可以通过调试和打印日志来检查选择状态的变化,以及确保正确的处理按钮点击事件。

腾讯云提供了一系列云计算相关的产品,包括云服务器、云数据库、云存储等。具体推荐的产品和产品介绍链接地址可以根据实际需求和场景来选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java超市仓库管理系统(超市条形码管理系统)

图1 2、在“商品名称”对应JTextField输入商品名称,单击“查询”:如果存在该商品,则显示如图2所示窗体;若输入名称不存在,则弹出“没找到该商品!”对话框。...图2 3、单击“添加商品”按钮,弹出如图3所示窗体,此时必须输入所有商品信息, 否则将弹出如图4所示对话框;商品信息输入完毕,单击“确定”按钮,实现商品添加, 在弹出如图5所示对话框后,释放窗体...对象名.setLocation(int x,int y) 或 对象名.setBounds(int x,int y,int Width,int Height) 注意:在使用自由布局方式布局JPanel控件...4、单击“显示所有商品”、“按编号查询”及“按名称查询”按钮时调用DBManager.runSelectSql方法实现;单击“修改商品”、“删除商品”或“添加商品”按钮调用DBManager.runUpdateSql...让窗口在屏幕中间显示 this.setResizable(false);//让窗口大小不可改变 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口关闭按钮程序执行操作

3.5K20

图书管理系统代码 4SearchFrame (…

JRadioButton("按编号",true); Radio_name   = new JRadioButton("按书名"); Radio_author = new JRadioButton("按作者"); // 将按钮添加到按钮...(textField.getText()); book_search =(Book)obo.readObject();//先读取第一个对象 // 如果文本框输入文字出现在某个对象执行以下操作 if...(model); new SearchResult().setVisible(true); }} //当选中是作者或者是书名单选按钮执行以下操作 if(Radio_name.isSelected...=null);} //没有检索到书时候显示结果 if(!exist){ JLabel label_result = new JLabel("没有检索到该书!!")...OptionalDataException e5) { e5.printStackTrace(); }catch(FileNotFoundException e6) { } catch (IOException e2) { // 选择分类没有一个书籍对象

1.2K20
  • 如何在Java中使用Table

    列和行之间交点称为单元格,用于保存单条数据。 在Java,开发人员可以使用JTable方法在其应用程序创建表。JTable是从JComponent类继承Swing组件。...,它将生成以下输出: 单击上述任何一个单元格,您会注意到其中数据是可编辑。...如果您只是向用户展示数据,这不是一个特别理想功能。此外,在向用户演示,所有数据都被视为字符串。 另一个值得关注问题是,如果您在数据库对象查询特定值,则必须将所有值复制到数组或向量。...所有表(包括使用JTable方法创建表)都使用表模型来管理其数据。开发人员没有向JTable构造函数提供表模型,将自动为其创建DefaultTableModel实例。...上面显示代码示例将表直接添加到JFrame容器。但是,您可以将表添加到滚动窗格,这样数据超出容器,用户可以轻松浏览数据。

    2.1K40

    Axure RP9文版,交互式原型设计软件Axure RP 9永久版下载安装

    案例增加了13种常用元件,分别为单行输入框、多行输入框、数字输入框、密码输入框、月份选择器、日期选择器、时间选择器、单选按钮组、多选按钮组、下拉列表、文件上传、评分控件、滑动滑块,你们也可以根据实际需要增加或删除...这里你们也可以用拖动事件,增加判断条件,拖动到指定位置才增加,这里作者为了方便就做在鼠标单击。你们可以根据自己需要效果来设置。 2....、多行输入框、数字输入框、密码输入框、月份选择器、日期选择器、时间选择器、单选按钮组、多选按钮组、下拉列表、文件上传、评分控件、滑动滑块,所以我们要动态面板里应该要有13个对应状态。...2)交互设置 中继器没每项加载,我们用设置面板状态交互,将动态面板设置到状态面和type列值对应页面。 鼠标单击关闭按钮,我们用删除行交互,将当前行内容删除。...,这里状态名也是要和type列里每行值一一对应,有多少个元件类型就增加多少个状态页面,案例包括了13种常用元件,分别为单行输入框、多行输入框、数字输入框、密码输入框、月份选择器、日期选择器、时间选择

    4.8K40

    Power Query 真经 - 第 7 章 - 常用数据转换

    【警告】 【透视列】对话框【值列】总是默认为数据集中一列,这很少是用户需要。不要忘了更改它。 【注意】 如果单击【高级选项】左边小三角,会发现也可以更改数值聚合方式。...事实证明,这个文件时间跨度从 2020 年 1 月 1 日到 2026 年 5 月 31 日,包含 53,500 多行,实际上客户只需要用到其中一小部分数据。...单击【高级】按钮,它将变得更加有用,如图 7-23 所示。...图 7-24 对 “State” 应用筛选器为包含 “ia”,且 “Sales” 要大于 1000 【警告】 配置多列筛选器,将创建一个单一应用步骤,当选择这个步骤,只有最初一列显示出活动筛选器图标...选择 “Date” 列【转换】【分组依据】。 单击【高级】按钮。 此时,会弹出【分组依据】对话框,如图 7-29 所示。

    7.4K31

    Java一分钟之-Swing组件:JTable, JTree, JTextArea

    Java Swing 提供了丰富组件库,其中JTable、JTree和JTextArea用于展示数据和用户输入。本文将深入浅出地介绍这些组件,常见问题,易错点以及如何避免,同时提供代码示例。 1....JTable JTable用于展示二维数据,如表格形式数据。它可以从数组、列表或模型获取数据。...JTextArea JTextArea用于多行文本输入和显示。...避免方法:在创建JTextArea设置初始文本。 结语 JTable、JTree和JTextArea是Swing展示和处理数据重要组件。...理解它们用法,注意常见设计模式和错误,可以帮助你创建出功能丰富用户界面。在实践,结合不同布局管理器和组件,你可以构建出各种复杂界面。

    16710

    「旅游信息管理系统」 · Java Swing + MySQL 开发「建议收藏」

    让窗口大小不可改变 getContentPane().setLayout(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口关闭按钮程序执行操作...);//去掉按钮周围焦点框 button_2.setContentAreaFilled(false);//设置按钮透明背景 getContentPane().add(button_2);...; } else { //获取用户选择数据 String name,sex,age,Idcard,address,phone,th,pt,ss; String id...; } else { //获取用户选择数据 String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString...修改:点击游客将会将游客编号绑定到文本框,可以对该游客编号对应游客进行团号和性别修改。删除:点击要删除信息,点击删除即可。添加:对报名信息进行添加。

    2.8K20

    那人Excel技巧好烂,他做1个小时,别人29秒搞定

    操作方法 1.Ctrl+T打开创建表格对话框,勾选“包含数据标题”,直接单击确定; 2.Ctrl+A选择创建好表格,单击“设计选项卡”,再在最右侧表格样式中选择一个内置”表格样式“ 3.然后单击右键...然而,一般数据透视表却有如下这样问题:数据增加,我们刷新数据透视表却得不到正确结果。请看下面的演示: ? 当我们增加源数据记录后刷新,结果却没有任何变化 我们又该怎么破呢?...2.选择数据源任意单元格,按下Alt+N+V打开创建数据透视表对话框,我们可以看到选择数据源框显示是”表格1“,这表明我们是利用表格创建数据透视表,单击确定。...只需一列任意一个空白单元格输入公式,然后Excel将自动将此公式填充到整列 需要说明是,当我们录入数据,比方说前十行都是有公式,当我们录入第十一行时,录入到成本列直接敲Enter,利润列公式将自动填充到...K11单元格,无需再在K11单元格输入公式;当我们增加多行记录,Excel将自动将表格样式套用到这些新增记录上,列也是一样

    2.6K50

    Power Query 真经 - 第 1 章 - 基础知识

    虽然可以单击一列左上方图标来选择适当数据类型,但这可能会花费相当多时间,特别是大量列需要处理。另一个技巧是让 Power Query 为所有列设置数据类型,然后覆盖想更改数据类型。...单击选择任何一列。 按 CTRL + A (选择所有的列)。 转到【转换】选项卡,单击【检测数据类型】。...幸运是,从右边【字段】列表中选择一个表切换到【数据】区域,仍然可以看到这些信息。这样做,加载总行数将显示在页面的左下角。...图 1-17 单击【转换数据】按钮来编辑 Power BI 查询 1.6.2 在 Excel 启动查询编辑器 在 Excel ,实际上有三个选项可以启动 Power Query 编辑器,其中有两个是依靠处于活动状态...图 1-18 【刷新预览】按钮可以在 Power Query 【主页】选项卡上找到 1.6.4 重新配置步骤 回到 Power Query 编辑器,现在完全可以在查询添加新步骤、删除步骤,甚至修改步骤

    5K31

    聊聊原型设计团队管理功能

    删除项目:在“我协作项目”界面,选中想要删除项目选项,单击最左侧垃圾桶按钮,在“提示”输入框内输入“delete”后,选择“确定”,即可删除该项目。注意,一旦删除后不能恢复。...添加/删除项目成员:在“项目成员”界面,在上端输入框内输入对方Mockplus账号(邮箱地址),或者点击+号旁下拉按钮选择团队成员,即可添加该项目成员;单击想要删除项目成员,在左下方单击“删除...发布/取消发布项目:在“我协作项目”界面单击“发布并分享”红色按钮,即可发布该项目。此时,在“分享地址”一列出现该项目的链接地址;在“状态”一列中出现一个黄色勾。...此时,在“密码”一列中会出现该项目的密码;单击“分享地址”下该项目的链接地址,在弹出网页“访问密码”输入框输入该密码,即可在网页审阅该项目。...复制链接地址:在项目发布后,单击其后文件按钮,即可复制链接地址。此时,链接已经复制到粘贴板,可以粘贴、发送给需要审阅该项目的人;如果该项目设置有密码,打开此链接需要输入该密码。

    1.9K60

    使用管理门户SQL接口(一)

    同一个用户激活管理门户,将显示该用户先前设置。 重新启动InterSystems IRIS返回所有选项为默认值。没有自定义名称空间选择。 它恢复到用户定义启动名称空间。...,Execute按钮显示查询窗口Enter参数值,其中每个输入参数条目字段按查询中指定顺序。空白字符。可以指定多个空格,单个和多行返回。...查询计划是在准备(编译)查询生成; 编写查询并选择Show Plan按钮,就会发生这种情况。不必执行查询来显示其查询计划。Show Plan在为无效查询调用时显示SQLCODE和错误消息。...在执行代码,Execute按钮被Cancel按钮替换。这允许取消长时间运行查询执行。查询数据显示如果选中了行号框,结果集将作为表返回,行计数器将显示为第一列(#)。...空格不会显示在Show History,但是从Show History检索SQL语句,会保留空格。

    8.3K10

    聊聊原型设计团队管理功能

    删除项目:在“我协作项目”界面,选中想要删除项目选项,单击最左侧垃圾桶按钮,在“提示”输入框内输入“delete”后,选择“确定”,即可删除该项目。注意,一旦删除后不能恢复。 ?...添加/删除项目成员:在“项目成员”界面,在上端输入框内输入对方Mockplus账号(邮箱地址),或者点击+号旁下拉按钮选择团队成员,即可添加该项目成员;单击想要删除项目成员,在左下方单击“删除...发布/取消发布项目:在“我协作项目”界面单击“发布并分享”红色按钮,即可发布该项目。此时,在“分享地址”一列出现该项目的链接地址;在“状态”一列中出现一个黄色勾。 ?...此时,在“密码”一列中会出现该项目的密码;单击“分享地址”下该项目的链接地址,在弹出网页“访问密码”输入框输入该密码,即可在网页审阅该项目。 ?...复制链接地址:在项目发布后,单击其后文件按钮,即可复制链接地址。此时,链接已经复制到粘贴板,可以粘贴、发送给需要审阅该项目的人;如果该项目设置有密码,打开此链接需要输入该密码。 ?

    1.1K70

    java swing 添加 jcheckbox复选框

    值得一提是在这七个构造方法,设计器(如果您使用了MyEclipse)使用JTable(TableModel dm)这个版本。...而一般情况使用JTable(Vector rowData,Vector columnNames)       在Java方法,如果参数需要传递接口,可以在调用方法传递一个(匿名)对象,该对象是一个不具名实例...在详细说明之前先解释一下JTable显示原理:       首先是数据来源,您使用JTable构造方法,大部分重载参数即包含了数据,比如JTable(VectorrowData, Vector columnNames...)Vector保存数据(Vector相当于数组)。   ...btn.setLocation((panel.getWidth()) / 2 - 40, panel.getHeight() - 80); 121 119 122 120 // 按钮点击显示当前选中项

    3.3K00

    基于java swing设备管理系统

    一.系统介绍 一个简易设备管理系统,包含了管理员登录注册、设备录入、设备状态管理功能,具体状态有购买、正在运行、正在修理和已报废。...StartFrame 负责登录、注册界面的显示 包含name、pwd文本输入框和login(regist)、exit按钮 点击login(regist)按钮,检测name、pwd数据是否为空,如果不为空...,则将数据传递到StartDao处理数据; regist成功,跳转入login界面 login成功,进入ManageFrame界面 点击exit按钮,系统退出 ManageFrame 框架...,这些类继承自抽象类InfoPanel,在抽象类定义抽象方法getHeaders()、getTableData()获取JTable表头、数据对象,由其子类重写对应方法;定义具体方法createScrollPane...()负责创建JScrollPane可滚动面板装载createTable()创建JTable对象,createSelectButton()负责创建搜索按钮 2.dao数据处理层 ?

    2.6K81

    软件工程 怎样建立甘特图

    还可以添加并优化以下日程元素: 任务​ image.png ​甘特图中每个任务在图表框架占用一行。您在“任务名称”列单元格中键入任务名称,任务工期将表示为时间刻度下方区域中任务栏。...删除里程碑 右键单击表示要删除里程碑任意单元格,然后单击快捷菜单“删除任务”。 摘要任务​ image.png ​您要在一个总括任务下合并若干附属任务,可以使用摘要任务。...右键单击其中一个选定任务,然后单击快捷菜单“降级”。 设置摘要任务工期 在表示第一个附属任务单击“开始时间”列单元格,然后键入该任务开始日期。...右键单击所选任务之一,然后单击快捷菜单“链接任务”。 中断任务之间依赖关系 通过单击包含任务名称单元格,选择带有要断开依赖关系任务。要选择多个任务,请在选择按住 Shift。...为“工作日”和“工作时间”选择所需选项,然后单击“确定”。 滚动至特定任务或里程碑 通过单击包含任务名称单元格,选择要滚动至任务或里程碑。 在“甘特图”工具栏上,单击“滚动至任务”按钮

    5K20

    路径复制

    在Windows资源管理器,右键单击任何文件,文件夹或文件组,然后显示上下文菜单。在其中,您将看到两个新项目。 ?...对于每个命令,可以单击命令左侧以为其选择一个图标(1),并选择该命令是出现在主上下文菜单还是出现在子菜单(或同时出现在这两个菜单)(2)。 命令列表(3)右侧按钮可用于进一步操作命令。...选择此选项后,可以通过单击“测试...”按钮(1)来测试输入正则表达式。 ? 正则表达式测试对话框 在“正则表达式测试”对话框,可以更改正则表达式和替换表达式参数(1)。...单击此对话框“确定”按钮会将修改后参数保留在父自定义命令对话框。 在专家模式下编辑自定义命令可释放其全部潜能,但要付出更多技术用户体验代价。...专家模式对话框每个元素都通过工具提示进行记录。只需将鼠标悬停在元素上即可显示其工具提示。 路径复制复制附带了可在定制命令中使用各种类型管道元素。按下“新元素”按钮,将显示它们。 ?

    3.4K30

    Java Swing JTable

    因此,在编写TableModel,不必侦听列重新排序事件,因为无论视图中发生什么,都将在其自身坐标系查询模型。...JTable基于行方法与基础TableModel一起使用时,必须进行坐标转换。所有基于JTables行方法都是基于RowSorter,不一定与基础TableModel相同。...例如,选择始终是根据JTable进行,因此,在使用RowSorter,您将需要使用convertRowIndexToView或convertRowIndexToModel进行转换。...(int rowHeight) // 设置指定行行高 void setRowHeight(int row, int rowHeight) /** 设置手动改变某列列宽,其他列列宽自动调整模式,...注意:该列是按表视图显示顺序指定,而不是按TableModel列顺序指定。这是一个重要区别,因为当用户重新排列表,视图中给定索引处列将发生变化。

    5K10

    WebGestalt 2019在线工具

    2、接着用户需要从下拉列表中选择感兴趣富集方法(包括ORA、GSEA、NTA),其中不同方法有不同参数输入。...通过单击标题,可以按分数和统计数据对表进行排序,单击基因集名称将在底部调出有关类别的详细信息。 条形图垂直绘制富集结果,其中条形宽度等于ORA富集比。...如果GSEA结果存在负相关类别,则图表将在两个方向上使用不同颜色(双向条形图)。类别的FDR小于或等于0.05,条形图颜色较暗,而FDR大于0.05类别的颜色处于较浅阴影。...右键单击绘图将显示下载按钮,可将其保存为SVG和PNG格式。 火山图显示了搜索数据库中所有类别的FDR相对于富集率或NES对数。重要类别将在上方显示,网点大小和颜色深度与类别的大小成正比。...将鼠标悬停在一个点上将显示有关它一些信息,单击它将更新详细信息部分。富集类别被标记,并且标签位置可以用鼠标手动调整。标签可以更改为基因集名称,并且可以使用按钮添加指向点连接线。

    3.7K00
    领券