JTable 是swing 包中提供显示二维表的控件,一般被包裹在一个JScrollPanel 里面显示数据。
DefaultTableModel 是 TableModel
的一个实现,用来操作JTable 的数据和一些属性。
譬如 修改数据时候获取到JTable 的TableModel 进行数据的删除、增加、修改,完成之后调用JTable 的invalidate
方法来更新布局,显示数据。
下面这段代码使用TableModel 实现JTable中第一列可以编辑,其他不可以编辑,其他一些设置也可以在此中重写代码实现自己需要的功能。
DefaultTableModel defaultmodel=new DefaultTableModel(0, 4){
@Override
public boolean isCellEditable(int row, int column) {
if(column==0){
return true;
}else{
return false;
}
}
};
searchedGrid =new JTable(defaultmodel) ;
新建好JTable之后我们就可以对它的一些列做一些设置,如下
TableColumnModel columnModel = searchedGrid.getColumnModel();
TableColumn column0 = columnModel.getColumn(0);//设置第一列
column0.setHeaderValue("");
column0.setMaxWidth(30);
column0.setMinWidth(30);
column0.setResizable(false);
column0.setCellRenderer(new JCheckBoxRender());//设置渲染效果
column0.setCellEditor(new DefaultCellEditor(new JCheckBoxRender()));//设置编辑效果,
这里最好和Renderer是相同,负责会出现一点怪毛病
JCheckBoxRender.java
public class JCheckBoxRender extends JCheckBox implements TableCellRenderer
{
private static final Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
public JCheckBoxRender()
{
super();
setHorizontalAlignment(SwingConstants.CENTER);
setBorderPainted(true);
}
@Override
public Component getTableCellRendererComponent(final JTable table, final Object value,
final boolean isSelected, final boolean hasFocus, final int row, final int column)
{
setBackground(table.getBackground());
if (hasFocus)
{
setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
}
else
{
setBorder(noFocusBorder);
}
if(column==0){
if(value instanceof Boolean){
setSelected((Boolean)value);
}
}
return this;
}
}
当然我们也可以如下做出隔行颜色不一样的Table。
searchedGrid.setDefaultRenderer(Object.class,
new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
setBackground(row%2==0?Color.red:Color.green);
return super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
}
});
此外,在各位仁兄在删除数据时候,尽量从后往前删除,避免错误(这个问题是由于不管是Vector还是List 删除元素是index会发生变化,导致索引失效,一般采用一直删除第一个或者反向删除)
分享到:
相关推荐
JTable使用 JTable使用JTable使用JTable使用
swing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing Jtable使用checkboxswing ...
jtable使用方法介绍,很专业,内容详细,蛮有用。
JTable的使用收藏 1.JTable与TableModel 1.TableModel与JTable的关系 2.TableModel实践 3.使用JTable+TableModel展示java中的数据对象 2.JTable展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...
此例子给出了JAVA中JTable使用的例子,列表可显示滚动条。
JTable使用自定义数据类型实现Boolean类型显示成Checkbox形式,并可以更加勾选的值改变背景色。
一个详细的JTable使用例子,是一个很好学习的例子。
关于界面的演示,学会JTable的使用!
Java jtable使用 包括读取数据库 虚拟表模型
深入学会如何使用jTable,详细了解jTable表格如何设置,以便更加美观
Java JTable 使用,表和数据库连接,功能超强
JTable的显示效果
自己写的简单程序,里面有数据库脚本和简要说明
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
java JTree+JTable使用样例,实现将JTree的节点内容显示到JTable中,eclipse导入maven项目 maven编译: mvn clean package
JTable动态刷新数据JTable动态刷新数据JTable动态刷新数据JTable动态刷新数据
mvc下使用jtable插件
Swing JTable 常用属性Swing JTable 常用属性Swing JTable 常用属性Swing JTable 常用属性Swing JTable 常用属性
而在许多应用程序都使用了 Swing 的 JTable 组件,以类似电子表格的格式显示数据。如果业务应用程序可以将数据导入 Microsoft Excel 和从 Microsoft Excel 中导出数据,则会为用户带来方便,使用户可以使用无处不在...
里边有数据库,看看吧!比较适合新手,也有加注释