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

📄 mylistmodel.java.svn-base

📁 通讯采集软件
💻 SVN-BASE
字号:
package collector.gui.model;

import javax.swing.*;

import collector.common.*;

public class MyListModel
    extends DefaultListModel {
  protected boolean m_RefeshTag = true;
  protected boolean m_DataChanged = false;
  protected int m_MaxElementCounter = 700;

  public MyListModel() {
  }

  private final int ADD = 0;
  private final int REMOVE = 1;
  class ElementChange
      implements Runnable {
    private int Type = -1;
    private String m_String = null;

    public ElementChange(int type) {
      super();
      Type = type;
    }

    public void setString(String m_pString) {
      m_String = m_pString;
    }

    public void run() {
      if (Type == ADD) {
        if (m_String == null) {
          return;
        }
        else {
          addElement(m_String);
        }
      }
      else if (Type == REMOVE) {
        removeElementAt(0);
      }
    }
  }

  public void removeElementAt(int index) {
    if (this.size() <= 0) {
      return;
    }
    else {
      super.removeElementAt(index);
    }
  }

  public Object getElementAt(int index) {
    int listmodel_size = this.size();
    if (index >= listmodel_size) {
      return null;
    }
    else {
      return super.getElementAt(index);
    }
  }

  public void appendElement(String m_pString) {
    try {
      if (!m_RefeshTag) {
        return;
      }
      int m_ElementCount = this.getSize();
      int m_DelCount = m_ElementCount - m_MaxElementCounter + 10;
      if (m_DelCount > 0) {
        for (int i = 0; i < m_DelCount; i++) {
          //this.removeElementAt(0);
          //////////////////////////////////////////////////////////////////
          ElementChange remove_Element = new ElementChange(REMOVE);
          SwingUtilities.invokeLater(remove_Element);
          //////////////////////////////////////////////////////////////////
          //removeRange(0, m_DelCount);
        }
      }
    }
    catch (Exception e) {
      CollectorDefine.SystemPrintln("appendElement In MyListModel Error #1");
      e.printStackTrace();
    }

    try {
      int StrLength = m_pString.length();
      int SubLength = 140;
      int StartPoint = 0;
      int EndPoint = 140;
      String SubStr = "";
      if (EndPoint >= StrLength) {
        //this.addElement(m_pString);
        //////////////////////////////////////////////////////////////////
        ElementChange add_Element = new ElementChange(ADD);
        add_Element.setString(m_pString);
        SwingUtilities.invokeLater(add_Element);
        //////////////////////////////////////////////////////////////////
      }
      else {
        while (EndPoint <= StrLength) {
          SubStr = m_pString.substring(StartPoint, EndPoint);
          //this.addElement(SubStr);
          //////////////////////////////////////////////////////////////////
          ElementChange add_Element = new ElementChange(ADD);
          add_Element.setString(SubStr);
          SwingUtilities.invokeLater(add_Element);
          //////////////////////////////////////////////////////////////////
          StartPoint += 140;
          EndPoint += 140;
        }
        if (StartPoint < StrLength) {
          SubStr = m_pString.substring(StartPoint);
          //this.addElement(SubStr);
          //////////////////////////////////////////////////////////////////
          ElementChange add_Element = new ElementChange(ADD);
          add_Element.setString(SubStr);
          SwingUtilities.invokeLater(add_Element);
          //////////////////////////////////////////////////////////////////
        }
      }
    }
    catch (Exception e) {
      CollectorDefine.SystemPrintln("appendElement In MyListModel Error #2");
      e.printStackTrace();
    }
    m_DataChanged = true;

  }

  public boolean getDataChanged() {
    return m_DataChanged;
  }

  public void setDataChanged(boolean m_DataChanged) {
    this.m_DataChanged = m_DataChanged;
  }

  public boolean getRefreshTag() {
    return m_RefeshTag;
  }

  public void setRefreshTag(boolean m_RefeshTag) {
    this.m_RefeshTag = m_RefeshTag;
  }
}

⌨️ 快捷键说明

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