zoukankan      html  css  js  c++  java
  • swing表格JTalble添加数据(数据类型实现自定类型,如颜色,组合框等控件)还有实现控件的功能—添加事件

    swing表格JTalble添加数据(数据类型实现自定类型,如颜色,组合框等控件)还有实现控件的功能—添加事件

       1.总结一下:

    1. 1.   样式的话,通过表格的渲染器改变,而功能的改变(例如添加组合框控件,数据变成组合框选中的—表格编辑器实现)
    2. 2.    想要实现:选中颜色,代表颜色就改变为选中的颜色:添加事件
    3. 3.    对于组合框有点小问题:选中后会调用两次方法,因为组合框有两种状态:选中状态和取消状态,所以事件中需要判断组合框的状态,然后再实现组合框的选中事件,就解决问题啦

     2.效果:

    3.实现细节:

    3-1

    3-2、实例化一个表格:JTable实例的时候没有传入参数,想要后边通过mode 来重新设置表格控件的表头和数据。

    (ps:为了有表头的样式,先把表格控件添加到滚动面板里,然后再添加到内容面板。)

     

    3-3. 定义二维数组Object[ ][ ]的数据 和 String[ ] 的表头名称,用来作为参数传入后边的mode表格模式。

     

     3-4.    通过封装一个方法来设置表格模式,方法里,实例了DefaultTableMode默认的模式,并且把数据和表头名称作为参数传入,然后通过表格的 .setModel(模式对象) 来设置表格模式。

     

    样子:

    (不够完美,所以我们选择了UIManager管理器来设置控件的样式)

    3-5 、  先设置表格和表头中的字体样式:

    通过UIManger.put(key, value); 把表格字体Table.font / TableHeader.font 作为参数key传入, Font对象作为value传入。

     

     3-6.    看一下,如果表格格子太窄了,就设置一下表格的行高像素:

    通过.setRowHeight(像素);

     

     

    3-7.

    (不完美,所以我们需要渲染器渲染显示出颜色)

    3-8、    因为要重写的内容很多,所以外部类啦,外部类继承DefaultTableCellRenderer,然后重写setValue函数,判断如果值value是Color类型则设置为背景颜色。

     

    3-9、   然后获取表格中我们想要的那一列,给它设置上我们的渲染器(通过.getColumn(“目标列”).setCellRenderer(渲染器对象) )。

     

    3-10.解决:

     

      3-11、 渲染器只能渲染,改变外观。想要修改功能,通过.setCellEditor(单元格编辑器)。

    3-12、想要实现选择下拉列表框后选中颜色,能够修改颜色---添加事件

    3-13. 下拉列表框的话有点小问题:就是选完选项,方法会被调用两次。

    因为:

     

    参考自:老九学堂java线上课程第17章swing《JTable 扩展》

     

  • 相关阅读:
    rotate list
    使用存取方法来设置Property value
    模拟创建类变量,static变量加类方法,单例
    下拉刷新常规代码
    强制横竖屏间切换
    友盟分享
    快速下拉刷新动画
    把电脑上的视频导入苹果6
    xcrun: error: active developer path ("/Volumes/Xcode/Xcode-beta.app/Contents/Developer") does not exist, use `xcode-select --swi
    iOS 刚刚,几分钟前,几小时前,几天前,几月前,几年前
  • 原文地址:https://www.cnblogs.com/shan333/p/14567585.html
Copyright © 2011-2022 走看看