java中JTable单元格中放复选框
来源:互联网 发布:黑色沙漠巫师捏脸数据 编辑:程序博客网 时间:2024/05/01 10:21
网上查资料,这方面讲的不实很详细。感觉写下来也许有点意义。呵呵本人刚学不久可能体会不深。请高人前辈指点
需要定义2个类:CheckButtonEditor,CheckBoxRenderer
测试类:table
CheckButtonEditor:代码:
import java.awt.Component;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.DefaultCellEditor;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JRadioButton;
import javax.swing.JTable;
import javax.swing.JTextField;
class CheckButtonEditor extends DefaultCellEditor
implements ItemListener {
private JCheckBox button;
public CheckButtonEditor(JCheckBox checkBox) {
super(checkBox);
}
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
if (value==null) return null;
button = (JCheckBox)value;
button.addItemListener(this);
return (Component)value;
}
public Object getCellEditorValue() {
button.removeItemListener(this);
return button;
}
public void itemStateChanged(ItemEvent e) {
super.fireEditingStopped();
}
}
CheckBoxRenderer类代码:
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
class CheckBoxRenderer implements TableCellRenderer{
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (value==null) return null;
return (Component)value;
}
table(测试类代码)
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
public class table implements MouseListener{
JTable table=new JTable();
public table(){
JFrame frame=new JFrame("sjh");
frame.setLayout(null);
table=this.gettable();
table.addMouseListener(this);
JScrollPane src=new JScrollPane(table);
src.setBounds(0, 0, 400, 200);
frame.setSize(new Dimension(400,200));
frame.add(src);
frame.setVisible(true);
}
public JTable gettable(){
DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector(
new Object[][]{{new JCheckBox("111"),new JCheckBox("111"),new JCheckBox("111"),new JCheckBox("111"),new JCheckBox("111"),new JCheckBox("111")},
{new JCheckBox("222"),new JCheckBox("222"),new JCheckBox("222"),new JCheckBox("222"),new JCheckBox("222"),new JCheckBox("222")},
{new JCheckBox("333"),new JCheckBox("333"),new JCheckBox("333"),new JCheckBox("333"),new JCheckBox("333"),new JCheckBox("333")},
},
new Object[]{"选择","结果物","说明","类型","发包要求文档","操作"});
JTable table = new JTable(dm){
public void tableChanged(TableModelEvent e) {
super.tableChanged(e);
repaint();
}
};
table.getColumn("选择").setCellEditor(new CheckButtonEditor(new JCheckBox ()));
table.getColumn("结果物").setCellEditor(new CheckButtonEditor(new JCheckBox ()));
table.getColumn("说明").setCellEditor(new CheckButtonEditor(new JCheckBox ()));
table.getColumn("类型").setCellEditor(new CheckButtonEditor(new JCheckBox ()));
table.getColumn("发包要求文档").setCellEditor(new CheckButtonEditor(new JCheckBox ()));
table.getColumn("操作").setCellEditor(new CheckButtonEditor(new JCheckBox ()));
//// table.getColumn("选择").setCellRenderer(new RadioButtonRenderer());
// table.getColumn("选择").setCellRenderer(new CheckBoxRenderer());
// table.setCellEditor(new CheckButtonEditor(new JCheckBox ()));
table.getColumn("选择").setCellRenderer(new CheckBoxRenderer());
table.getColumn("结果物").setCellRenderer(new CheckBoxRenderer());
table.getColumn("说明").setCellRenderer(new CheckBoxRenderer());
table.getColumn("类型").setCellRenderer(new CheckBoxRenderer());
table.getColumn("发包要求文档").setCellRenderer(new CheckBoxRenderer());
table.getColumn("操作").setCellRenderer(new CheckBoxRenderer());
return table;
}
public static void main(String args[]){
new table();
}
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
好了.呵呵.
我的邮箱是smhwell@163.com有空可以探讨啊。小弟很乐意。
- java中JTable单元格中放复选框
- JAVA-SWT如何在Jtable单元格中加入复选框Jcheckbox,Jbutton,JcomboBox
- 一个牛人写的“设置jtable单元格颜色,以及jtable中实现复选框”的程序,备忘
- “设置jtable单元格颜色,以及jtable中实现复选框”的程序
- (Swing) 在JTable中实现复选框
- 设置java中JTable单元格指定文字颜色
- java JTable中禁止单元格编辑状态、在单元格中显示图片
- 修改JTable中任意单元格颜色
- jTable 中单元格的颜色设置
- JTable中CheckBox单元格背景色渲染
- JTable中如何让单元格文字居中
- Jtable加入复选框
- (Swing) 在JTable中实现复选框,一种更好的方法
- 如何屏蔽JTable中编辑单元格的功能。
- 设置一个JTable中某些单元格的背景色
- 设置一个JTable中某些单元格的背景色
- JScrollPane中放JTable,但滚动条一直不显示
- Java中JTable的用法
- Anark Studio 简介
- 用Setup Factory 7.0制作安装程序(收集)
- provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接
- 汇编中参数的传递和堆栈修正
- 新华网“查看评论”重定向的greasemonkey脚本
- java中JTable单元格中放复选框
- squid.conf典型配置范例
- perl中调用ole 处理excel文件
- 3D技術
- Introducing Ajax
- C# 调用Win32的Dll,参数对应描述
- struts处理中文乱码问题
- 浙江大学2005年计算机考研上机复试
- 使用 dom4j 解析 XML