📄 messagestablemodel.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 + -