⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groupresultpanel.java

📁 java B++树 一个很好的算法来实现这些问题 推荐!
💻 JAVA
字号:
package cq_result_trans.application;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import com.borland.jbcl.layout.*;
import java.util.*;
import mddb.client.*;
import mddb.client.components.*;

//专门用来显示分组结果的Panel
public class GroupResultPanel
    extends JPanel {
    //my variables
    AppFrame frame;
    public boolean isShowing = false; //表示这个Panel是否正在被显示,即若没被显示就不用更新

    private String[] colname = {"ID", "MasterID","Position","NeighbourList"};
    DefaultTableModel tableModel;
    ColorTableCellRenderer colorRender;
    JTable groupTable;

    void groupPanelInit(AppFrame frame,JTable groupTable) throws Exception {
        this.frame = frame;
        this.setDoubleBuffered(true);
        this.groupTable = groupTable;
        tableModel = new DefaultTableModel( colname, 0 );
        TableColumn column = null;
        this.groupTable.setModel(tableModel);
        for( int i = 0; i < 4; i++ ) {
            column = groupTable.getColumnModel().getColumn( i );
            if( i < 3 ) {
                column.setPreferredWidth( 10 );
                column.setWidth( 10 );
            }else if(i == 2)
                column.setPreferredWidth( 80 );
            else {
                column.setPreferredWidth( 300 );
            }
        }
        colorRender = new ColorTableCellRenderer();
    }

    //-----------------------------------------------------------------------
    private void removeAllItems(){
        for( int i = tableModel.getRowCount() - 1; i >= 0; i-- ) {
            tableModel.removeRow( i );
        }
    }
    //参数:节点数量,和其映像节点
    public void updatePanel( int nodeAmount, Node[] nodes ) {
        removeAllItems();
        String[] rowData = new String[4];
        StringBuffer sb;
        for(int i = 0; i < nodeAmount; i++)
        {
            if(nodes[i].mapNode.isMaster()){
                rowData[0] = String.valueOf(nodes[i].mapNode.getID());
                rowData[1] = String.valueOf(nodes[i].mapNode.getMasterId());
                rowData[2] = nodes[i].mapNode.getPosition().toString();
                sb = new StringBuffer();

                int nebrSize = nodes[i].mapNode.getNeighbourList().getSize();
                NeighbourList nebrTemp;

                for( int j = 0; j <  nebrSize; j++){
                    nebrTemp = nodes[j].mapNode.getNeighbourList();
                    sb.append(nebrTemp.getNebrId(j)+"   ");
                }

                rowData[3] = sb.toString();
                tableModel.addRow(rowData);
            }
        }
        this.groupTable.setModel(tableModel);
        //设置列表现器------------------------//
        for( int i = 0; i < colname.length; i++ ) {
            this.groupTable.getColumn( colname[i] ).setCellRenderer( colorRender );
        }
    }
}
//列表现器,让table的Master所在的列出现间隔色
class ColorTableCellRenderer
    extends DefaultTableCellRenderer
    implements TableCellRenderer {
    public Component getTableCellRendererComponent( JTable table,
        Object value, boolean isSelected, boolean hasFocus, int row, int column ) {
        long id = Long.parseLong( (String)table.getValueAt(row, 0));
        long masterId = Long.parseLong( (String)table.getValueAt(row,1));
        if( id == masterId ) {
            setBackground( new Color( 206, 231, 255 ) ); //设置底色
        }
        return super.getTableCellRendererComponent( table, value,
            isSelected, hasFocus, row, column );
    }
}

⌨️ 快捷键说明

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