JTable中,显示checkbox以及更改选中状态
2011-01-05 15:19
316 查看
继续做完的JTable的来学习和实践,默认情况下构造的JTable,内容是死的,不能更改,可以通过实现3个TableModel来作为JTable构造时候的参数穿进去,就可以灵活的对JTable就行构造了,来看下我这个JTable的例子,带上注释就好了。。
/** * */ package com.baseframework.core.ui.component; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn; /** * @author sunyanan * * 是整体框架的左侧树状导航,也是任务的开始设置地方,整体返回一个JTable的实例 * */ public class LeftTableNavigation { // 单例一下 private LeftTableNavigation() {}; private static LeftTableNavigation l = new LeftTableNavigation(); public static LeftTableNavigation getInstance() { return l; } // 左侧导航JTable的唯一实例 private JTable table; /** * 主要的产生导航Table的方法 * * @return JTable的实例 */ public JTable process() { if(table == null) { table = new JTable(new LinkTableMode()); } // 设置表头不伸缩模式:如果手工调整一个表头栏目,其他的不会跟随着变的 table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表头的宽度 for(int i = 0; i < table.getColumnCount(); ++i) { TableColumn tc = table.getColumnModel().getColumn(i); tc.setPreferredWidth(table.getColumnName(i).length() * 15); } return table; } } class LinkTableMode extends AbstractTableModel { private static final long serialVersionUID = 1016386589304301730L; // 常量配置区 private String[] tableHeader = {"初始关键词&列表", "采相关词", "采网址", "采内容", "发内容"}; private Object[][] data = {{"初始关键词&列表", false, true, true, true}}; @Override public int getColumnCount() { return tableHeader.length; } @Override public int getRowCount() { return data.length; } @Override public Object getValueAt(int rowIndex, int columnIndex) { return data[rowIndex][columnIndex]; } @Override public String getColumnName(int column) { return tableHeader[column]; } /** * 默认情况下这个方法不用重新实现的,但是这样就会造成如果这个列式boolean的类型,就当做string来处理了 * 如果是boolean的类型那么用checkbox来显示 */ @Override public Class<?> getColumnClass(int columnIndex) { return getValueAt(0, columnIndex).getClass(); } /** * 来判断当前选中的单元格是够可以被编辑,因为我是从第二列需要可以编辑的,也就是复选框的列可以编辑的,故 * 我有个逻辑判断的哈 */ @Override public boolean isCellEditable(int rowIndex, int columnIndex) { if(columnIndex > 0) return true; return false; } /** * 如果这个列可以被编辑的话,但是没有这个方法,当回车后是恢复之前的内容的,只有在这个地方通过对新值的 * 获取然后再设置进去才会被更改的。 */ @Override public void setValueAt(Object value, int rowIndex, int columnIndex) { System.out.println("[row: "+ rowIndex + ", column: " + columnIndex + ", value: " + value + " ]"); data[rowIndex][columnIndex] = value; } }
相关文章推荐
- JTable中,显示checkbox以及更改选中状态
- JavaScript拿到多个CheckBox的选中状态以及ajax的用法
- 如何记录ListView滚动后CheckBox保持选中状态以及当全选后让滚动出来的item也被选中
- checkbox显示为checked="checked"但是不显示选中状态
- JTable表头显示问题以及如何让某行选中
- Android ListView在有checkbox的情况下上下滑动选中状态错误以及position错乱
- Checkbox当为选中时,但是界面却没有显示选中的状态的解决办法
- 关于BaseAdapter,SimpleAdapter的数据显示错乱问题,选中状态错乱问题,Checkbox选中状态错乱问题总结
- jquery checkbox选中状态以及实现全选反选
- ListView/GridView嵌套CheckBox滑动时CheckBox选中状态显示错乱
- IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
- 跨线程为控件赋值并保持listview选中状态以及在可见区域显示
- IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
- jquery checkbox 复选框多次点击判断选中状态,以及全选/取消的代码示例
- 根据复选框checkbox选中状态隐藏或显示input输入框
- android 在状态栏显示内容以及更改状态栏颜色
- jQuery 更改checkbox的状态,无效的解决方法
- JS实现表单中checkbox对勾选中增加边框显示效果
- checkbox选中并记住状态(分页)
- 让“提交”按钮状态跟随edittext以及checkbox等的状态实时变化