• 大小: 31KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Java
  • 标签: java  swing  demo  

资源简介

这里是我最近学习swing编程中用到的一些demo JTable CURD 事件绑定 进度条 线程处理等等demo,总之作为新手的你,看这个demo你可以学到很多。这里还采用了2-3中布局方式实现布局,由于项目其他保密性,这里只是一个demo分支,有些功能可能并不能导入使用,需要自己整理一下,巨大多数的类可以直接运行看效果的。

资源截图

代码片段和文件信息

package tom.change.demo.Jtable单元格合并;

import java.awt.Point;
import java.util.Arrays;
import java.util.List;
import java.util.Vector;

import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;

public class DefaultGridBagTableModel implements GridBagModel  TableModelListener{

protected AbstractTableModel model;   
    protected List> gridInfo;   
       
    DefaultGridBagTableModel(AbstractTableModel model){   
        gridInfo = new Vector>();   
        setTableModel(model);   
    }   
       
    public void setTableModel(AbstractTableModel model){   
        if( model != null && model != this.model ){   
            if( this.model != null )   
                this.model.removeTableModelListener(this);   
            //防止多次添加监听器   
            model.removeTableModelListener(this);   
            model.addTableModelListener(this);   
            this.model = model;   
            clearMergence();   
        }   
    }   
       
    public void clearMergence(){   
        if( gridInfo == null  )   
            gridInfo = new Vector>();   
        else  
            gridInfo.clear();   
           
        if( model == null )   
            return;   
           
        //初始化,每个格子占的格子数为(11);   
        for(int row=model.getRowCount(); --row>=0;){   
            List infos = new Vector();   
            gridInfo.add(infos);   
            for(int col=model.getColumnCount(); --col>=0;){   
                infos.add(getDefaultPoint());   
            }   
        }   
    }   
       
    public Point getDefaultPoint(){   
        return new Point(11);   
    }   
       
    @Override  
    public boolean canMergeCells(int[] rows int[] columns) {   
        if( rows == null || columns == null ) return false;   
        Arrays.sort(rows);   
        for(int index=0; index            if( rows[index+1] - rows[index] > 1 )   
                return false;   
        }   
        Arrays.sort(columns);   
        for(int index=0; index            if( columns[index+1] - columns[index] > 1 )   
                return false;   
        }   
        return true;   
    }   
       
    @Override  
    public int getCellState(int row int column) {   
        Point grid = getGrid(row column);   
        if( grid == null ) return DEFAULT;   
        if( grid.x>1 || grid.y>1 )   
            return MERGE;   
        if( grid.x<=0 || grid.y<=0 )   
            return COVERED;   
        return DEFAULT;   
    }   
  
    @Override  
    public int getColumnGrid(int row int column) {   
        if( gridInfo != null && row >=0 && row < gridInfo.size() ){   
            List gridRow = gridInfo.get(row);   
            if( gridRow != null && column >=0 && column < gridRow.size() )

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7305  2017-01-16 13:56  demo\Jtable单元格合并\DefaultGridBagTableModel.java

     文件       2082  2017-01-16 13:55  demo\Jtable单元格合并\GridBagModel.java

     文件       6427  2017-01-16 13:54  demo\Jtable单元格合并\GridBagTable.java

     文件      17760  2017-01-16 13:57  demo\Jtable单元格合并\GridBagTableUI.java

     文件       1217  2017-01-16 13:58  demo\Jtable单元格合并\Test.java

     文件       1836  2017-01-19 11:13  demo\JTable学习\SimpleJTable.java

     文件       4051  2017-01-18 15:40  demo\JTable学习\SimpleTableDemo.java

     文件       6144  2017-01-19 15:52  demo\JTable学习\TableRenderDemo.java

     文件       9700  2017-01-18 16:08  demo\JTable学习\TableSelectionDemo.java

     文件       2942  2017-01-19 16:38  demo\JTable学习\自己JTable整合\TableModel\MyTableModel.java

     文件       3693  2017-01-19 16:36  demo\JTable学习\自己JTable整合\Test.java

     文件        963  2017-01-16 14:45  demo\JTable按钮点击事件\ButtonTable.java

     文件       1483  2017-01-16 14:43  demo\JTable按钮点击事件\MyRenderz.java

     文件       1074  2017-01-16 14:36  demo\JTable按钮点击事件2\Main.java

     文件        518  2017-01-16 14:24  demo\JTable按钮点击事件2\MyButton.java

     文件       1464  2017-01-16 14:40  demo\JTable按钮点击事件2\MyButtonEditor.java

     文件        565  2017-01-16 14:22  demo\JTable按钮点击事件2\MyButtonRender.java

     文件        176  2017-01-16 14:24  demo\JTable按钮点击事件2\MyEvent.java

     文件       3844  2017-01-19 13:54  demo\JTable更新\Test.java

     文件       3526  2017-01-16 13:50  demo\Jtable添加数据点击事件\JTableTest.java

     文件       1845  2017-01-16 13:41  demo\Jtable添加数据点击事件\UserMouseAdapter.java

     文件       2359  2017-01-18 13:34  demo\全选反选\CheckHeaderCellRenderer.java

     文件        647  2017-01-18 13:21  demo\全选反选\CheckTableModle.java

     文件       2772  2017-01-18 13:24  demo\全选反选\Testframe.java

     文件        925  2017-01-16 17:22  demo\线程\MutliThread.java

     文件        311  2017-01-16 17:23  demo\线程\MutliThreadDemo.java

     文件       2919  2017-01-16 16:51  demo\进度条\ProgressBar.java

     目录          0  2017-01-19 13:57  demo\JTable学习\自己JTable整合\TableModel

     目录          0  2017-01-19 14:06  demo\JTable学习\自己JTable整合

     目录          0  2017-01-16 13:58  demo\Jtable单元格合并

............此处省略12个文件信息

评论

共有 条评论