菜鸟学习ing

class CheckDefaultModel extends DefaultTableModel

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Test2; import javax.swing.table.DefaultTableModel; /**
*
* @author Administrator
*/
public class CheckDefaultModel extends DefaultTableModel { Object[] columns;
Object[][] data ; public CheckDefaultModel(Object[][] data, Object[] columnNames) {
super(data, columnNames);
} public Class<?> getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
} public void setAllSelected(boolean value) {
for (int i = 0; i < getRowCount(); i++) {
this.setValueAt(value, i, 0);
}
}
}

class TableHeaderRender implements TableCellRenderer

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Test2; import java.awt.Component;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer; /**
*
* @author Administrator
*/
public class TableHeaderRender implements TableCellRenderer { JTable table;
JTableHeader tableHeader;
CheckDefaultModel model;
JCheckBox headerBox; public TableHeaderRender(JTable table) {
this.table = table;
this.tableHeader = table.getTableHeader();
this.model = (CheckDefaultModel) table.getModel(); headerBox = new JCheckBox(model.getColumnName(0));
headerBox.setSelected(false); tableHeader.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int selectColumn = tableHeader.columnAtPoint(e.getPoint());
if (selectColumn == 0) {
boolean value = !headerBox.isSelected();
headerBox.setSelected(value);
model.setAllSelected(value);
tableHeader.repaint();
}
}
});
} @Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
String valueStr = (String) value;
JLabel label = new JLabel(valueStr);
JComponent component = (column == 0) ? headerBox : label;
return component;
}
}

class TableTester extends JFrame

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Test2; import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.DefaultCellEditor;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn; /**
*
* @author Administrator
*/
public class TableTester extends JFrame { JPanel contentPanel = new JPanel();
JTable table = new JTable();
Object[] columns = {"choose"};
Object[][] data = {{new Boolean(true)}, {new Boolean(false)}, {new Boolean(false)}}; public TableTester() {
setTitle("CheckBox Table2");
setPreferredSize(new Dimension(300, 200));
setLocationRelativeTo(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack(); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPanel.setLayout(new BorderLayout());
add(contentPanel, BorderLayout.NORTH); JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
contentPanel.add(scrollPane, BorderLayout.NORTH); initTable();
} public void initTable() { table.setModel(new CheckDefaultModel(data, columns));
table.getTableHeader().setDefaultRenderer(new TableHeaderRender(table));
} public static void main(String[] args) {
new TableTester().setVisible(true);
}
}

Table中的JCheckBox TableHeader的全选(全反选)功能的更多相关文章

  1. js事件---同一个事件实现全选与反选功能

    背景: 点击头部按钮,实现全选与反选功能 1.绑定事件,把当前勾选状态传递给方法 $event <el-checkbox v-model="ModelCheckAll" cl ...

  2. Delphi实现DBGrid全选和反选功能

    Delphi实现Dbgrid全选和反选.清除全选的功能,不管是在Delphi下,还是在WEB开发中,这种功能都是很实用的,是进行数据批量操作的基础.本模块就是实现了为Delphi的DBGrid数据列表 ...

  3. 原生js中实现全选和反选功能

    <!DOCTYPE html>      <html>      <head lang="en">          <meta char ...

  4. jQuery实现复选框的全选、反选功能

    <ul id="list"> <li><label><input type="checkbox" value=&quo ...

  5. [原]vue实现全选,反选

    用vue写业务代码时候,后端大神丢给我一堆数据,要求是做全选,反选功能,然后把用户更改的数据全部返回给他 基本思路 如果父级选中了,那么父级下面的子集全部选中checked=true; 如果子集中选中 ...

  6. vue2.0实现在table中实现全选和反选

    其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...

  7. vue2.0在table中实现全选和反选

    其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的, ...

  8. vue中的checkbox全选和反选

    前几天有个博客园的朋友问小颖,小颖之前写的vue2.0在table中实现全选和反选  .Vue.js实现checkbox的全选和反选,为什么他将里面的js复制下来,但是实现不了全选和反选.小颖当时看他 ...

  9. Jquery 遍历 Table;遍历CheckBox ;遍历Select;全选/全不选

    关于Jquery:相信大家已经很熟悉了,我最近的项目运用到关于Jquery的遍历事件:权当总结下: 遍历Table <table  id="thistab"> < ...

随机推荐

  1. 推荐font-size的单位 % em单位

    在如今这个提倡可用性设计以及用户体验设计的网络时代,CSS也是要一同参与其中的.大部分人在CSS代码编写中总是先对整体定义字体尺寸,中文情况下一般为12px,而其实这样以来在通过IE顶部菜单中的“察看 ...

  2. utf8格式源代码中的字符串,默认都会当作char来处理,除非用L""符号来修饰

    原先QString("mystrr"),现在都不认了,必须都要加上L才行 原先:m_conn->put_HttpProxyAuthMethod("Basic&quo ...

  3. Mylyn

    Mylyn(旧称Mylar)是eclipse的一个插件,用于将任务管理和上下文管理无缝集成到Eclipse中.1. 安装 下载相应的Mylyn zip包,解压缩开就是两个文件夹:features和pl ...

  4. 基于visual Studio2013解决C语言竞赛题之0409 100以内素数

       题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /******************************************* ...

  5. 基于visual Studio2013解决C语言竞赛题之0407最大值最小值

      题目 解决代码及点评 这道题考察循环和比较 /*********************************************************************** ...

  6. 数据库 isnull()、nvl()、ifnull() 使用

    SqlServer 插入字段值 为空 设置默认值 isnull(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值 Oracle nvl(val_1,val_2) 当va ...

  7. Struts+Tomcat搭建

    Struts+Tomcat搭建 tomcat使用(服务器端开发): 如果要安装Tomcat需要进行的配置:tomcat安装在c: \Tomcat CATALINA_HOME变量值设为: H:\Prog ...

  8. 我的Python成长之路---第三天---Python基础(11)---2016年1月16日(雾霾)

    三.深浅拷贝 在Python中将一个变量的值传递给另外一个变量通常有三种:赋值.浅拷贝以及深拷贝 讨论深浅拷贝之前我们把Python的数据类型分为基本数据类型包括数字.字符串.布尔以及None等,还有 ...

  9. Java--再次理解多态

    Java中多态性(polymorphism)的实现 什么是多态 1. 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. ...

  10. USACO Healthy Holsteins DFS

    使用排列组合,遍历所有可能的情况C(1)+C(2)+C(3)……C(n)= 2^G种组合 数据规模不大,暴力过去最多也就是2^15 = 23768种情况 所以就暴力咯,不过还是Debug了一会 Sou ...