cachetableex.java

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

JAVA
169
字号
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov  Date: 2004-2-20 9:14:17
// 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.CacheTableEX;

import java.awt.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.JTableHeader;
import sbsnms.asn.IDList;
import sbsnms.asn.IDType;
import utility.Trace;

// Referenced classes of package utility.CacheTableEX:
//            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(IDList idlist)
    {
        if(idlist == null)
            Trace.print("CacheTableEx", "setIDList", "set IDList null!");
        tableModel.setIDList(idlist);
    }

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

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

        if(idlist1.size() > 0)
            return idlist1;
        else
            return null;
    }

    public IDType getSelectedItem()
    {
        int i = getSelectedRow();
        if(i == -1)
        {
            return null;
        } else
        {
            IDList idlist = getIDList();
            return (IDType)idlist.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 + -
显示快捷键?