cachetableex.java

来自「自行开发的高缓存table」· Java 代码 · 共 182 行

JAVA
182
字号
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov  Date: 2004-2-20 9:16:01
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   CacheTableEx.java

package utility.CacheTableVector;

import java.awt.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.JTableHeader;
import utility.Trace;

// Referenced classes of package utility.CacheTableVector:
//            CacheTableModel, CacheTableScrollPane

public class CacheTableEx extends JTable
{

    public CacheTableEx(CacheTableModel cachetablemodel)
    {
        tableModel = null;
        scrollPane = null;
        if(cachetablemodel != null)
        {
            tableModel = cachetablemodel;
            setDoubleBuffered(true);
            setModel(cachetablemodel);
            cachetablemodel.setPagedTable(this);
        } else
        {
            CacheTableModel cachetablemodel1 = new CacheTableModel();
            tableModel = cachetablemodel1;
            setDoubleBuffered(true);
            setModel(cachetablemodel1);
            cachetablemodel1.setPagedTable(this);
        }
        getTableHeader().setReorderingAllowed(false);
    }

    public int[] getSelectedRows()
    {
        if(getRowCount() <= 0)
            return new int[0];
        if(super.selectionModel != null)
        {
            int i = super.selectionModel.getMinSelectionIndex();
            int j = super.selectionModel.getMaxSelectionIndex();
            if(i == -1 || j == -1)
                return new int[0];
            int ai[] = new int[1 + (j - i)];
            int k = 0;
            for(int l = i; l <= j; l++)
                if(super.selectionModel.isSelectedIndex(l))
                    ai[k++] = l;

            int ai1[] = new int[k];
            System.arraycopy(ai, 0, ai1, 0, k);
            return ai1;
        } else
        {
            return new int[0];
        }
    }

    public int getSelectedRow()
    {
        if(getRowCount() <= 0)
            return -1;
        else
            return super.selectionModel.getMinSelectionIndex();
    }

    public int getSelectedRowCount()
    {
        if(getRowCount() <= 0)
            return 0;
        if(super.selectionModel != null)
        {
            int i = super.selectionModel.getMinSelectionIndex();
            int j = super.selectionModel.getMaxSelectionIndex();
            int k = 0;
            for(int l = i; l <= j && l < getRowCount(); l++)
                if(super.selectionModel.isSelectedIndex(l))
                    k++;

            return k;
        } else
        {
            return 0;
        }
    }

    public void setTableScrollPane(CacheTableScrollPane cachetablescrollpane)
    {
        scrollPane = cachetablescrollpane;
    }

    public CacheTableScrollPane getTableScrollPane()
    {
        return scrollPane;
    }

    public void updateData(int i)
    {
        tableModel.updateData(rowAtPoint(new Point(1, i)));
    }

    public void setIDList(Vector vector)
    {
        if(vector == null)
            Trace.print("CacheTableEx", "setIDList", "set IDList null!");
        tableModel.setIDList(vector);
    }

    public Vector getIDList()
    {
        return tableModel.getAllId();
    }

    public Vector getSelectedItems()
    {
        int ai[] = getSelectedRows();
        Vector vector = new Vector();
        Vector vector1 = getIDList();
        if(vector1 == null)
            return null;
        for(int i = 0; i < ai.length; i++)
            vector.add(vector1.elementAt(ai[i]));

        return vector;
    }

    public boolean deleteIDFromAll(Object obj)
    {
        Vector vector = tableModel.getAllId();
        if(vector == null)
            return false;
        if(vector.remove(obj))
        {
            tableModel.setIDList(vector);
            Trace.print("CacheTableEx", "deleteIDFromAll", "deleteIDFromAll(IDType id)-----OK");
            return true;
        } else
        {
            tableModel.setIDList(vector);
            Trace.print("CacheTableEx", "deleteIDFromAll", "deleteIDFromAll(IDType id)-----Failure");
            return false;
        }
    }

    public Object getSelectedItem()
    {
        int i = getSelectedRow();
        if(i == -1)
        {
            return null;
        } else
        {
            Vector vector = getIDList();
            return vector.elementAt(i);
        }
    }

    public int rowAtPoint(Point point)
    {
        int i = point.y;
        if(i < 0)
            return 0;
        else
            return super.rowAtPoint(point);
    }

    public int getViewLines()
    {
        double d = scrollPane.getViewport().getSize().height;
        return (int)(d / (double)super.getRowHeight() + 1.0D);
    }

    private CacheTableModel tableModel;
    CacheTableScrollPane scrollPane;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?