JTable,几行数据的更改控制之外的一行

问题描述

我用的JavaSwing写的界面,现在想实现这样一个需求:比如说,我一个表格有4行两列,第二列的列类型是Boolean.Class,也就是复选框了,然后我希望第二到第四行都被勾选的情况下,第一行自动被勾选,反过来第一行被勾选的话,第二至第四行也均被勾选(这个我能实现了),请问前面一种情况要怎么写程序,在线等,求大侠们给点思路或者小程序,先谢过大家了~~~

解决方案

解决方案二:
下面是我的半成品程序,麻烦大家帮我看一下后半部分怎么写:packageaa;importjava.awt.BorderLayout;importjava.awt.Dimension;importjavax.swing.JFrame;importjavax.swing.JScrollPane;importjavax.swing.JTable;importjavax.swing.event.TableModelEvent;importjavax.swing.event.TableModelListener;importjavax.swing.table.DefaultTableModel;publicclassCheckTest{publicstaticString[]names={"根节点","叶节点1","叶节点2","叶节点3"};publicstaticvoidmain(String[]args){JFrameframe=newJFrame("勾选测试");frame.setPreferredSize(newDimension(300,240));frame.setLayout(newBorderLayout());String[]columns={"中文名称","是否选择"};finalDefaultTableModeltableModel=newDefaultTableModel(columns,0);for(inti=0;i<names.length;i++){tableModel.addRow(newObject[]{names[i],false});}tableModel.addTableModelListener(newTableModelListener(){@OverridepublicvoidtableChanged(TableModelEvente){//TODOAuto-generatedmethodstubintrow=e.getLastRow();intcolumn=1;if(row==0){//设置编辑第一行第二列时,更改下面几行的值if(((Boolean)tableModel.getValueAt(row,column)).booleanValue()){for(inti=1;i<4;i++){tableModel.setValueAt(true,i,column);}}else{for(inti=1;i<4;i++){tableModel.setValueAt(false,i,column);}}}//怎么通过下面几行控制第一行的更改???}});finalJTabletable=newJTable(tableModel){privatestaticfinallongserialVersionUID=1L;publicbooleanisCellEditable(introw,intcolumn){return(column==1);//设置第二列可编辑}publicClass<?>getColumnClass(intcolumn){if(column==1)returnBoolean.class;//设置第二列为Boolean类型,即CheckBoxelsereturnsuper.getColumnClass(column);}};table.getColumnModel().getColumn(1).setMinWidth(60);//设置第二列的宽度table.getColumnModel().getColumn(1).setPreferredWidth(70);table.getColumnModel().getColumn(1).setMaxWidth(70);JScrollPanetableScrollPane=newJScrollPane(table);frame.pack();frame.setLocationRelativeTo(null);frame.add("Center",tableScrollPane);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}

解决方案三:
这里好像存在死循环,就是点击第一行第二列更改下面的三行,但是下面三行的任意一行更改会和前面这种情况相冲突,有点死循环的赶脚,不造怎么解决,来人啊。。。求辅助啊。。。

时间: 2025-01-20 19:10:44

JTable,几行数据的更改控制之外的一行的相关文章

更新多行数据,然后把更新的结果读出来,这样的 SQL 要怎么写?

考虑这样一种场景,或许还挺常见的:我们需要在关系数据库中更新一行或多行数据的多个字段,更新完了还不算,还得拿到被更新的某一个字段的结果. 再考虑这样一种场景:我们需要在关系数据库中更新一行或多行数据的多个字段,更新完了还不算,还得拿到这批被更新的记录的主键,以便操作其他的有关联的表. 这么说也许太抽象,就拿点赞计数来打个比方(做为点赞狂魔的我,前不久才在朋友的 博文 下面强行点了 666 个赞). 假设有这样一张表,就叫 likes 好了,记录了一个网站里面每个能被点赞的对象被赞的次数.id 是

在Struts中使用JavaBean和List(多行数据)类型属性

数据   在 Strust 中,我们可能经常要在 ActionForm 中使用其他 JavaBean 作为属性类型,这里就存在着如何使用好这些属性与 HTML Form 之间的数据交换,下面我们就这些问题做一讲解. 如在用户注册界面中,我们通常会将用户的联系方式形成一个单独的新的 Class ,如 Contact ,包含以下属性:电话 (tel) ,手机 (cell) , Email(email) , QQ(qq) ,通信地址 (adress) 等等,这样条理也比较清晰,以下是这个 Action

sql server 2008 R2中如何插入多行数据

插入多行数据时,可以不用写N多的insert into. SELECT DISTINCT ' ('+'''' +loginip  +''''+') '+',' FROM dbo.Login WHERE loginname  IN ( SELECT  DISTINCT loginname FROM dbo.Login WHERE loginip='61.170.245.61' ) go --获得这样的结果 ('61.61.245.243'), ('61.61.245.61'), 这样直接 inse

Excel表格中每行数据下面插入一行的方法

Excel表格中每行数据下面插入一行的方法           方法一: 根据定位(快捷键F5),给空值插入行. 方法二:根据序号排序的方法.

如何在一个单元格中输入多行数据

有时,我们经常需要在一个Excel单元格中输入多行数据.您可不要以为这个问题很简单,其实,当我们准备在单元格中换行时,只要按下回车键Excel便肯定转到下一个单元格了.那么如何做才能在同一个单元格中输入多行数据呢?笔者这里就给大家介绍两个小技巧. [注] 本文所述技巧已于Excel 2003下测试通过 方法一. 临时设置法 如果我们只是临时需要在一个单元格中输入多行数据,那么就可以在输入完单元格内容的第一行后,按住Alt键再打回车,这时,继续输入的字符便自动出现在了当前单元格的下方了. 方法二.

在excel中怎么把多行数据转化为一列?

  在excel中怎么把多行数据转化为一列?在excel我们会输入名字多行列,怎么能转换为一列呢?如何在excel里把多行数据转化为一列?我们来学习一下. 步骤 打开excel文件,在多行多列中输入姓名. 在C6单元中输入=D1,按确定. 在右下角处出现十字形时,向下拖动,出现如下结果. 把左边空白表格上也填充上发,发现第一列已经全部出现名字了. 把左边的内容选中,复制选择性粘贴到右边某一列即可,然后清除一下内容. 以上就是在excel中怎么把多行数据转化为一列方法介绍,操作很简单的,大家学会了

Excel2003中复制行数据到列中

  在整理表格数据的时候,经常会用到行列转置的情况.当你需要将行数据转置存放于列中时,可以考虑用今天的方法来复制数据. 步骤如下: ①首先,选中该行数据,将其复制; ②将鼠标选中希望从某列开始地方的单元格中,如下图中,我希望从A3单元格开始; ③单击菜单栏中的"编辑",在弹出菜单中选择"选择性粘贴"; ④在弹出的"选择性粘贴"窗口中将最下面的"转置"勾选,最后单击确定按钮即可. 此时,这些数据就会从行排序,变成列排序了.当然,

scala-spark中怎么将读取某几行数据合并成一行啊? 新手 谢谢 !

问题描述 spark中怎么将读取某几行数据合并成一行啊? 新手 谢谢 ! 例如图片里说的 谢谢啦 数据是读取的外部csv文件 麻烦啦 求大神指教一下 解决方案 sehll脚本将几行输出合并成一行显示 解决方案二: http://bbs.csdn.net/topics/391872110

as-sql查询行数据里不同字段有相同数据的记录

问题描述 sql查询行数据里不同字段有相同数据的记录 create table meiyong ( id int identity(1,1), se_id varchar(100), sp_id varchar(100), xx varchar(100), yy varchar(100) ) insert into meiyong values('谁是大哥','不知道','aa','bb') insert into meiyong values('我是哥哥','我是哥哥','q','ma') i