jtable checkbox render
来源:互联网 发布:细说php视频下载 编辑:程序博客网 时间:2024/06/14 03:31
package com.ui;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import javax.swing.DefaultCellEditor;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableModel;
public class TestJtable extends JFrame{
private JCheckBox jCheckBox = new JCheckBox();
private Map<Integer,JCheckBox> checkBoxes = new HashMap<Integer, JCheckBox>();
final TestJtable testJtable = this;
TableModel tableModel = null;
Object[][] datas = {
{"","a","b","c"},
{"","a1","b1","c1"},
{"","a2","b2","c2"},
{"","a3","b3","c3"},
};
final String[] column = {"checkBox","C_1" , "C_2","C_3"};
public TestJtable(){
this.setBounds(300, 300, 300, 300);
layoutCompent();
this.setVisible(true);
}
public void layoutCompent(){
tableModel = new DefaultTableModel(datas,column);
final JTable jtable = new JTable(tableModel);
DefaultCellEditor cde = new DefaultCellEditor(new JCheckBox()){
@Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
if(value != null && value instanceof JCheckBox){
return (Component) value;
}
return super.getTableCellEditorComponent(table, value, isSelected, row, column);
}
};
jtable.getColumn("checkBox").setCellEditor(cde);
jtable.getColumn("checkBox").setCellRenderer(new TableCellRenderer(){
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
JCheckBox jcb = checkBoxes.get(row);
if(jcb == null){
jcb = new JCheckBox();
}
if(value != null ){
jcb.setSelected(new Boolean(value.toString()));
return jcb;
}
return jcb;
}
});
jtable.getColumn("checkBox").setMaxWidth(20);
jtable.addMouseListener(new MouseAdapter(){
int dragStartRow = 0;
int dragEndRow = 0;
public void mouseClicked(MouseEvent e) {
int selectAll = jtable.getSelectedColumn();
if(selectAll == 0){
for(int i =1 ; i<3 ; i++){
Boolean isSelect = new Boolean(jtable.getModel().getValueAt(i, 0).toString());
jtable.getModel().setValueAt(!isSelect, i, 0);
System.out.println(isSelect);
}
}
System.out.println("cc"+jtable.getSelectedRow());
}
@Override
public void mousePressed(MouseEvent e) {
dragStartRow = jtable.rowAtPoint(e.getPoint());
System.out.println("dragStartRow : "+dragStartRow);
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
dragEndRow = jtable.rowAtPoint(e.getPoint());
System.out.println("dragEndRow:"+dragEndRow);
for(int i = 0 ; i<datas.length;i++){
jtable.getModel().setValueAt("false", i, 0);
}
for(int i = dragStartRow;i<=dragEndRow;i++){
jtable.getModel().setValueAt("true", i, 0);
}
System.out.println("mouseReleased");
}
});
this.add(jtable);
}
public static void main(String[] args) {
TestJtable tj = new TestJtable();
}
}
- jtable checkbox render
- 带CheckBox的JTable实现
- JTable中CheckBox单元格背景色渲染
- 带tooltip和checkbox的JTable
- [Java] JTable 表头加checkbox全选
- Render;
- render
- 在JList或者JTable的中加入checkbox
- JTable中,显示checkbox以及更改选中状态
- JTable中,显示checkbox以及更改选中状态
- jtable
- JTable
- JTable
- JTable
- JTable
- JTABLE
- JTable
- JTABLE
- hdu 4001
- 删除字符串多余空格
- 数字电路学习一
- 白盒测试
- JDBC基础之连接
- jtable checkbox render
- ASP.NET中利用Segments取得URL的文件名的一种方法
- vmware tool 的安装
- linux安装flashplayer
- 自己动手写操作系统笔记1
- 嵌入式操作系统的启动
- JDBC 通过1433端口连接 Sql Server 异常
- 转:用firebug调试网页
- 完成端口线程池及任务接口