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

尽管实现了"getColumnClass“,但JTable仍显示true/false而不是CheckBox

问题描述:尽管实现了"getColumnClass",但JTable仍显示true/false而不是CheckBox。

解决方案: 在JTable中显示CheckBox而不是true/false值,需要进行以下步骤:

  1. 实现getColumnClass方法:在TableModel中重写getColumnClass方法,返回对应列的数据类型。
代码语言:txt
复制
@Override
public Class<?> getColumnClass(int columnIndex) {
    if (columnIndex == yourCheckBoxColumnIndex) {
        return Boolean.class;
    } else {
        return super.getColumnClass(columnIndex);
    }
}
  1. 设置TableCellRenderer:创建一个自定义的TableCellRenderer来渲染CheckBox。可以使用DefaultTableCellRenderer或自定义的TableCellRenderer。
代码语言:txt
复制
class CheckBoxRenderer extends DefaultTableCellRenderer {
    private static final long serialVersionUID = 1L;

    public CheckBoxRenderer() {
        super();
        setHorizontalAlignment(JLabel.CENTER); // 居中显示CheckBox
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        JCheckBox checkBox = new JCheckBox();
        checkBox.setSelected((boolean) value); // 设置CheckBox选中状态
        return checkBox;
    }
}
  1. 设置TableCellEditor(可选):如果需要允许用户编辑CheckBox,可以创建一个自定义的TableCellEditor来处理用户的编辑事件。
代码语言:txt
复制
class CheckBoxEditor extends DefaultCellEditor {
    private static final long serialVersionUID = 1L;

    public CheckBoxEditor() {
        super(new JCheckBox());
    }
}
  1. 应用渲染器和编辑器:在创建JTable时,将自定义的TableCellRenderer和TableCellEditor应用到对应的列上。
代码语言:txt
复制
JTable table = new JTable(model);
table.getColumnModel().getColumn(yourCheckBoxColumnIndex).setCellRenderer(new CheckBoxRenderer());
// 如果需要允许编辑CheckBox,取消下面注释
// table.getColumnModel().getColumn(yourCheckBoxColumnIndex).setCellEditor(new CheckBoxEditor());

以上步骤可以实现在JTable中显示CheckBox而不是true/false值。根据你的实际情况,将yourCheckBoxColumnIndex替换为需要显示CheckBox的列的索引。

关于腾讯云相关产品的介绍和推荐链接,可以参考腾讯云官方文档进行了解和选择,具体地址如下:

  • 腾讯云官方文档:https://cloud.tencent.com/document/product
  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/tencentdb
  • 腾讯云云原生应用引擎(Tencent Cloud Native Application Engine):https://cloud.tencent.com/product/tcnae
  • 腾讯云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(BCN):https://cloud.tencent.com/product/bcn
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(Mobile):https://cloud.tencent.com/product/mobile
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java swing项目桌面软件还是蛮香的,至少有我自己的桌面软件|Java 开发实战

JTable数据显示java swing中jtable是mvc形式的,所以jtable仅仅是数据的显示真正和数据绑定的却是TableModel这个接口,我们先看看这个接口的内部有哪些方法,这样我们心里才有个底...我需要一个几行几列的表格,至于每个单元格显示的内容就是通过getValueAt这个方法实现的,到这里我们就实现jtable的model自定义显示。...显示模块去刷新从1-6行的所有数据,所以说比如你更新第一行的数据,而你用的两个参数是1,4.那么恭喜你,你的更新JTable无法实现,因为他只更新从第二行开始到第五行的数据。...JTable控件显示法相信有的朋友遇到过,表格中需要显示CheckBox、button等控件的,但是我们发现我们定义的控件在表格上显示成了控件对应的类的字符串,这又是为什么呢。...的方法是JTable决定显示类型的主要依据,源码中返回的默认是object.class,这就意味着我们在jtabletruefalse或其他类,在这里都会返回object.class,那么jtable

25610

Java Swing JTable

在示例区域中,展示一种排序算法的演示,该算法正是使用此技术来插入另一个坐标系,在该坐标系中行的顺序发生了变化,不是列的顺序发生了变化。...再把滚动面板添加到其他容器中显示 ? TableModel TableModel 接口指定 JTable 用于询问表格式数据模型的方法。...只要数据模型实现 TableModel 接口,就可以通过以下两行代码设置 JTable 显示该模型: TableModel myData = new MyTableModel(); JTable table...*/ public Class getColumnClass(int columnIndex); 判断指定单元格是否可编辑 如果行和列中的单元格是可编辑的,则返回true。...注意:该列是按表视图的显示顺序指定的,不是按TableModel的列顺序指定的。这是一个重要的区别,因为当用户重新排列表中的列时,视图中给定索引处的列将发生变化。

5K10
  • java swing 添加 jcheckbox复选框

    那么关于设置窗体的显示就不再赘述,值得注意的是窗体的布局必须设置。 小贴士:使用setLayout设置布局,参数传递null; 讨论一下怎样在窗体的表格中显示复选框。即实现如下效果: ?...一般情况使用JTable(Vector rowData,Vector columnNames)       在Java方法中,如果参数需要传递接口,可以在调用方法时传递一个(匿名)对象,该对象是一个不具名的类的实例...,该对象所属类实现方法参数的接口。...new ……()是构造方法,调用来构造一个匿名对象,其后的{}不是Java的特殊语法,但是Java中可以将方法定义在里面(这里的方法生命周期与匿名对象相 同),当然,此处是用于实现接口的方法。...new MyTableModel:TableModel(){}也就是说大家可以想象成(new TableModel(){})是在声明一个匿名对象,它属于一个不具名的类(如MyTableModel),该类实现

    3.3K00

    java winform开发之JTable全攻略

    ,在实例化并初始化好Vector后,只要调用JTable的setModel方法,就可以将列头及数据的信息显示在表格中啦。...); } 3)怎样为JTable添加行标识 我们知道,JTable的每一个单元格,要求的值类型是一个Object的实例,也就是说,只要是一个对象就可以,这个机制,给了我们非常大的发挥空间...,我们可以在一个单元格中存放任意类型的对象,只要在这个对象中重写一下toString()方法,将我们希望在单元格中显示的内容return出来就可以,只JTable本身,并没有提供设置行id等识别表格行对象的方法...我定义的自定义单元格对象是这样的,有三个属性,一个是id,一个是text,还有一个是自定义对象项,id当然是这个行的唯一标识啦,text是单元格中要显示的内容,自定义对象项,则是为了方便在这个单元格对象中附加一个对象...4)怎样在JTable中动态添加新行 其实这个问题非常简单,只要根据列模型生成相应的行对象,然后通过调用JTable的model对象的addRow方法就ok,由于过于简单,所以直接贴代码来说明问题:

    1.2K30

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

    大家好,又见面,我是你们的朋友全栈君。...MyEclipse 9.0及以上版本,MySql 5.6及以上版本 二、要求 利用SWING编程实现商品的管理,要求如下: 1、商品管理页面布局,添加一个JScrollPanel(内嵌JTable),...用来显示所有商品的信息;添加两个JLabel用于显示查询提示信息;添加JTextField用于输入商品商品名称;添加2个JButton,分别用来实现商品查询及添加商品,效果图如图1所示。...4、单击“显示所有商品”、“按编号查询”及“按名称查询”按钮时调用DBManager.runSelectSql方法实现;单击“修改商品”、“删除商品”或“添加商品”按钮调用DBManager.runUpdateSql...this.setResizable(false);//让窗口大小不可改变 getContentPane().setLayout(null); JTable jTable = new

    3.5K20

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

    大家好,又见面,我是你们的朋友全栈君。...: 业务管理员: 旅游业务模型: 整体概要设计: 二、界面示例: 首页: 点击报名:如果没有登录提示游客登录 登录界面: 注册界面: 报名: 报名信息管理界面: 报名信息导出生成EXCEL表格: 三、实现代码...旅游业务模型: 整体概要设计: 二、界面示例: 首页: 点击报名:如果没有登录提示游客登录 登录界面: 注册界面: 报名: 报名信息管理界面: 报名信息导出生成EXCEL表格: 三、实现代码...;//返回true表示能编辑,false表示不能编辑 } }; JTable jTable=new JTable(dt);//创建表格 jTable.getTableHeader...;//返回true表示能编辑,false表示不能编辑 } }; jTable=new JTable(dt);//创建表格 jTable.getTableHeader().setFont

    2.8K20

    AngularDart Material Design 复选框 顶

    我们没有扩展ButtonDecorator,因为我们需要覆盖几个属性,包括role,tabindex,最重要的是因为checkbox只能与SPACE交互,button适用于SPACE和ENTER。...true是CHECKEDfalse不是。 disabled bool  复选框是否不应响应事件,并且具有暗示不允许交互的样式。...indeterminate bool 复选框的替代状态,不是用户可设置状态。 在checked和indeterminate之间,只有一个可以是真的,尽管两者都可能是假的。...true是INDETERMINATEfalse不是。 indeterminateToChecked bool  确定切换indeterminate状态时要进入的状态。...true将去检查,false将取消选中。 label String 复选框的标签,或者使用内容。 readOnly bool  是否可以通过用户交互更改复选框。

    2K40

    按钮和复选框控件

    每个状态改变时,状态列表遍历从上到下,第一项相匹配的当前状态是使用选择不是基于“最佳匹配”,只是第一项满足最低标准的状态,即:系统是从上往下匹配的,如果匹配到一个item那么它就将采用这个item,不是采用的最佳匹配的规则...Button的底层,那么就可以把这个属性设置为true,这样图片就只显示在中间,就像我们设置桌面背景一样,可以设置成居中、拉伸,如果这里设置成true就相当于居中,如果不设置或者设置为false就是拉伸.... android:dither 是否让系统来帮我们处理颜色差异,一般android系统中使用的颜色是ARGB_8888,很多显示设置是RGB_565,这个ARGB_8888与RGB_565有什么区别呢...R,中间6位保存G,后5位保存B.因此呀,如果android系统的点显示到屏幕上,还得转换一下,在这里这个dither就起作用了,如果我们把它设置为true的话,那显示的时候屏幕间断的取点,这样的结果,...,在其间补充一点相间的颜色使看起来比较平滑,这样和真的图片还是有差异的,因些有的人想要得到很逼真的显示,这里就得自己来计算了,自己来计算,即占内存又占cpu,颜色可以很逼真,如果有这样的需求那这里就要把这个属性设置为

    1.2K20

    JTable怎样控制某一列、某一单元格允许或不允许被编辑

    网上有很多关于怎样实现JTable不能被编辑的文章,因为如果不设置的话,双击单元格就会将单元格的内容读入一个默认的编辑器里,很多时候我们并不希望这样的事情发生,所以必须do something来阻止它。...; } }; 没什么神秘的,就是重写DefaultTableModel的方法isCellEditable方法,更多的情况下,我们是需要指定表格中某一列或若干列允许被编辑...,如商品列表中的数量,价格等等,这样又如何去实现呢?    ...其实仔细观察一下,这个isCellEditable方法会传两个参数进来,明眼人一看就知道,这分别是单元格的行和列索引,所以,根据这个row和column来控制返回truefalse,我们的愿望就能实现...row,int column){ if(row == 2 && column == 2){ return true; }else{ return false;

    1.1K10

    小程序开发实战(8):可与其他组件绑定的文本组件(label)

    这是因为这些组件尽管可以显示文本,除了button外,其他组件点击文本,是不会自动选中当前组件的,因此,需要使用label组件以某种方式,将这些组件和文本绑定到一起,不管是直接点击组件本身,还是点击组件旁边的文本...下面先看第1种方式的实现。...图1 checkbox组件的显示效果 其实从表面上看,label组件好像有点多余,如果将label组件去掉,checkbox和text组件直接作为view的子组件,显示的效果和图1所示的效果完全一样...item.name}}"> {{item.name}} 很明显,label组件并未包含radio组件,只包含了一个...其中radio组件的id是“{{item.name}}”,for属性的值也是“{{item.name}}”,这说明,label中文本与item.name指定的radio组件绑定。

    61330

    Thinking in React

    ProductRow (red): 显示产品的具体信息 我们可以看到,tHead部分(Name和Price)并不是一个单独的组件,在这个例子中,之所以tHead属于ProductTable组件是因为它并没有与数据...在这一步,由于我们构建的是静态版本,因此每个组件只实现其render方法,用以基本的数据渲染。...,则不是state 是否随着时间改变,如果不变,则不是state 可以通过其他state或者props计算得到,如果可以,则不是state 产品数据列表是通过父组件的props传递,因此不是state...,用户输入和checkbox满足上述三个条件,可以作为state,二对于过滤的列表,则可以根据产品数据和用户输入来获取到,因此不是state。...step4 确定state所属的组件 目前确定state集合,接下来需要确定究竟是哪个组件拥有这个state,或者随着state变化。

    1.4K70
    领券