Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
来源:互联网 发布:java如何创建线程池 编辑:程序博客网 时间:2024/06/05 08:23
上一篇介绍了组合列表框作为表格元素的例子,这篇根据上篇的DefaultCellEditor的构造方法,再来练习一个复选框的例子
这个例子首先在创建数据时,复选框那一列的值默认值一个给得是false,一个给的是true,所以界面打开的时候会一个是选中,一个是没选中,如图:
代码如下:
package com.acconsys.swing.chapter14;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.DefaultCellEditor;import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.AbstractTableModel;/** * 使用复选框作为编辑器来编辑表格中的单元格 * * @author burns * */public class Test18 { public Test18() { JFrame f = new JFrame(); MyTable18 mt = new MyTable18(); /** * 由于MyTable类继承了AbstractTableModel,并且实现了getColmunCount()、getRowCount()、 * getValueAt()方法 由此可以通过通过MyTable18来产生TableModel的实体 */ JTable t = new JTable(mt); JCheckBox jc1 = new JCheckBox(); t.getColumnModel().getColumn(4) .setCellEditor(new DefaultCellEditor(jc1)); t.setPreferredScrollableViewportSize(new Dimension(550, 30)); JScrollPane s = new JScrollPane(t); f.getContentPane().add(s, BorderLayout.CENTER); f.setTitle("ColumnModelDd"); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new Test18(); }}class MyTable18 extends AbstractTableModel { Object[][] p = { { "王鹏", new Integer(66), new Integer(32), new Integer(98), false }, { "宋兵", new Integer(85), new Integer(69), new Integer(154), true }, }; String[] n = { "姓名", "语文", "数学", "总分", "及格与否" }; @Override public int getRowCount() { return p.length; } @Override public int getColumnCount() { return n.length; } @Override public Object getValueAt(int rowIndex, int columnIndex) { return p[rowIndex][columnIndex]; } @Override public String getColumnName(int column) { return n[column]; } @Override public Class<?> getColumnClass(int columnIndex) { return getValueAt(0, columnIndex).getClass(); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { p[rowIndex][columnIndex] = aValue; fireTableCellUpdated(rowIndex, columnIndex); }}
0 0
- Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
- Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
- Java Swing JTable 表格【15:组合列表框作为表格元素】
- Java Swing编程:JTable表格
- Java Swing编程:JTable表格
- java swing Jtable 自定义 表格
- 7、java swing 添加 jcheckbox复选框
- Swing编程JTable表格
- jtable表头及表格中添加jcheckBox
- java swing sql->jtable表格 查询
- Java Swing JTable 表格【1:创建表格填充数据】
- Java Swing JTable 表格【2:创建空表格】
- Java Swing JTable 表格【4:表格模型TableModel】
- Java Swing JTable 表格【5:表格模型AbstractTableModel】
- Java Swing JTable 表格【6:表格模型DefaultTableModel】
- Java Swing JTable 表格【7:监听表格数据变化】
- Java Swing JTable 表格【8:表格使用选择器SelectionModel】
- Java Swing JTable 表格【9:表格使用渲染器DefaultTableCellRenderer】
- CUDA进阶第三篇:CUDA计时方式
- mysql分区表
- schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/beans/spri
- apache httpd安装及配置
- <LeetCode OJ> 69 / 367 Sqrt(x) / Valid Perfect Square
- Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
- 【Leetcode】之 Combination Sum II
- MySQL High Availability总结(三) 配置Slave
- Python函数
- mysql主从复制架构
- iOS合理利用Local Push和Long-running background task
- 人脸识别 交叉验证函数crossvalind 的用法
- Android 源码编译过程
- Spring+Mybatis+Struts2框架搭建