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

📄 messagestablemodel.java

📁 这是Java编程艺术一书附带的源代码
💻 JAVA
字号:
import java.util.*;
import javax.mail.*;
import javax.swing.*;
import javax.swing.table.*;

// This class manages the e-mail table's data.
public class MessagesTableModel extends AbstractTableModel
{
  // These are the names for the table's columns.
  private static final String[] columnNames = {"Sender",
    "Subject", "Date"};

  // The table's list of messages.
  private ArrayList messageList = new ArrayList();

  // Sets the table's list of messages.
  public void setMessages(Message[] messages) {
    for (int i = messages.length - 1; i >= 0; i--) {
      messageList.add(messages[i]);
    }

    // Fire table data change notification to table.
    fireTableDataChanged();
  }

  // Get a message for the specified row.
  public Message getMessage(int row) {
    return (Message) messageList.get(row);
  }

  // Remove a message from the list.
  public void deleteMessage(int row) {
    messageList.remove(row);

    // Fire table row deletion notification to table.
    fireTableRowsDeleted(row, row);
  }

  // Get table's column count.
  public int getColumnCount() {
    return columnNames.length;
  }

  // Get a column's name.
  public String getColumnName(int col) {
     return columnNames[col];
  }

  // Get table's row count.
  public int getRowCount() {
    return messageList.size();
  }

  // Get value for a specific row and column combination.
  public Object getValueAt(int row, int col) {
    try {
      Message message = (Message) messageList.get(row);
      switch (col) {
        case 0: // Sender
          Address[] senders = message.getFrom();
          if (senders != null || senders.length > 0) {
            return senders[0].toString();
          } else {
            return "[none]";
          }
        case 1: // Subject
          String subject = message.getSubject();
          if (subject != null && subject.length() > 0) {
            return subject;
          } else {
            return "[none]";
          }
        case 2: // Date
          Date date = message.getSentDate();
          if (date != null) {
            return date.toString();
          } else {
            return "[none]";
          }
      }
    } catch (Exception e) {
      // Fail silently.
      return "";
    }

    return "";
  }
}

⌨️ 快捷键说明

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