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

📄 servertable.java

📁 自己写的具有图形界面的SMTP和POP3邮件服务器端程序,实现邮件发送和收取,新建用户功能,用最基本的语句描述了邮件服务器端与客户端之间的通信过程
💻 JAVA
字号:
package cstest;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import javax.swing.event.*;
import java.io.Serializable;
import java.util.Date;
import java.awt.color.*;
import java.io.File;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.*;

class DataModel extends AbstractTableModel {
      Object[][] data = {
      {
              "one", "two", "three", "four"}
              , {
              "five", "six", "seven", "eight"}
              , {
              "nine", "ten", "eleven", "twelve"}
              ,
      };
      // Prints data when table changes:
      class TML
              implements TableModelListener {
            public void tableChanged(TableModelEvent e) {
                  for (int i = 0; i < data.length; i++) {
                        for (int j = 0; j < data[0].length; j++)
                              System.out.print(data[i][j] + " ");
                        System.out.println();
                  }
            }
  }
  DataModel() {
    addTableModelListener(new TML());
  }
  public int getColumnCount() {
    return data[0].length;
  }
  public int getRowCount() {
    return data.length;
  }
  public Object getValueAt(int row, int col) {
    return data[row][col];
  }
  public void
  setValueAt(Object val, int row, int col) {
    data[row][col] = val;
    // Indicate the change has happened:
    fireTableDataChanged();
  }
  public boolean
  isCellEditable(int row, int col) {
    return true;
  }
};

public class ServerTable extends JPanel {

  static UserInfoList uil=null;
  private int n = 0;

  public ServerTable()
  {
        try {
              if ( (new File("User.us")).exists()) {
                    //得到配置文件输入流
                    ObjectInputStream input =
                            new ObjectInputStream(new FileInputStream(
                            "User.us"));
                    //读取用户节点信息
                    uil = (UserInfoList) input.readObject();
                    input.close();
              }
              else
              {
                    uil = new UserInfoList();
                    Node Ken = new Node("ken", "ken", "ken");
                    Ken.setFile();
                    Node Ryu = new Node("ryu", "ryu", "ryu");
                    Ryu.setFile();
                    Node Admin = new Node("admin", "admin", "admin");
                    Ken.setFile();
                    uil.add(Ken);
                    uil.add(Ryu);
                    uil.add(Admin);

                    ObjectOutputStream out =
                            new ObjectOutputStream(new FileOutputStream(
                            "User.us"));
                    //保存设置
                    out.writeObject(uil);
                    //关闭配置文件输出流
                    out.close();
              }
        }
        catch (Exception ioe) {
              ioe.printStackTrace();
        }
        n = uil.getCount();
        String[] columnNames = {
                "User Name",
                "Account",
                "Passowrd"
        };
        Object[][] data = new Object[100][3];
        for (int i = 0; i < n; i++) {
              data[i][0] = uil.find(i).getUserName();
              data[i][1] = uil.find(i).getAccount();
              data[i][2] = uil.find(i).getPassword();
        }

        setLayout(new BorderLayout());
        JTable table = new JTable(data, columnNames);
        JScrollPane scrollpane =
                JTable.createScrollPaneForTable(table);
        add(scrollpane, BorderLayout.CENTER);
  }
}


⌨️ 快捷键说明

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