Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
来源:互联网 发布:吃月饼猜9字网络流行语 编辑:程序博客网 时间:2024/06/05 00:48
上一篇介绍了组合列表框作为表格元素的例子,这篇根据上篇的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 classTest18 {
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 voidwindowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public staticvoid 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 intgetRowCount() {
return p.length;
}
@Override
public intgetColumnCount() {
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 booleanisCellEditable(int rowIndex,int columnIndex) {
return true;
}
@Override
public voidsetValueAt(Object aValue, int rowIndex, int columnIndex) {
p[rowIndex][columnIndex] = aValue;
fireTableCellUpdated(rowIndex, columnIndex);
}
}
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 classTest18 {
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 voidwindowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public staticvoid 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 intgetRowCount() {
return p.length;
}
@Override
public intgetColumnCount() {
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 booleanisCellEditable(int rowIndex,int columnIndex) {
return true;
}
@Override
public voidsetValueAt(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】
- mysql获取第n条记录
- uc/os-iii学习笔记-任务管理
- uva-10115 - Automatic Editing
- Android地位的4大方式
- Jcrop使用方法
- Java Swing JTable 表格【16:复选框JCheckBox作为表格元素】
- 现在云战争(真的)开始了
- 外键以及外键约束简介
- 支付宝提示:由于您的设备缺少根目录,无法校验该访问站点的安全性,可能存在风险,请选择是否继续
- java面向对象基础
- 机器学习(1):基本概念
- csdn如何转载别人的文章
- iOS-copy与mutableCopy浅析
- 【JZOJ 4614】字符串