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

📄 serverframe.java.svn-base

📁 多线程加密聊天室,支持多线程客户端链接服务器端
💻 SVN-BASE
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. *//* * ServerFrame.java * * Created on 2008-11-21, 7:32:28 */package safechatserver;import java.io.IOException;import java.net.*;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.*;/** * * @author DJ尐舞 */public class ServerFrame extends javax.swing.JFrame {    private ServerSocket server;//服务器套接字    private boolean[] listening = new boolean[1];//用数组是为了传递时候采用引用传递,来控制所有的监听状态    private DefaultListModel StateListM = new DefaultListModel();//登陆状态    private DefaultListModel UserListM=new DefaultListModel();//用户列表    ServerThreadManager serverThreadManager;    /** Creates new form ServerFrame */    public ServerFrame() {        initComponents();        StateList.setModel(StateListM);        userList.setModel(UserListM);        listening[0] = true;//初始化监听状态为true        serverThreadManager = new ServerThreadManager(server, listening, StateListM,UserListM);        serverThreadManager.start();        ListenButton.setText("关闭服务");        StateListM.addElement("系统自动开启服务");    }    /** This method is called from within the constructor to     * initialize the form.     * WARNING: Do NOT modify this code. The content of this method is     * always regenerated by the Form Editor.     */    @SuppressWarnings("unchecked")    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents    private void initComponents() {        jTextField1 = new javax.swing.JTextField();        jLabel1 = new javax.swing.JLabel();        ListenButton = new javax.swing.JButton();        jScrollPane2 = new javax.swing.JScrollPane();        StateList = new javax.swing.JList();        ClearButton = new javax.swing.JButton();        editArea = new javax.swing.JTextField();        jLabel2 = new javax.swing.JLabel();        jButton1 = new javax.swing.JButton();        jScrollPane1 = new javax.swing.JScrollPane();        userList = new javax.swing.JList();        showAllUsers = new javax.swing.JButton();        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);        jTextField1.setText("localhost");        jLabel1.setText("主机");        ListenButton.setText("开启服务");        ListenButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                ListenButtonActionPerformed(evt);            }        });        StateList.setBorder(javax.swing.BorderFactory.createTitledBorder("服务状态信息"));        jScrollPane2.setViewportView(StateList);        ClearButton.setText("清除状态信息");        ClearButton.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                ClearButtonActionPerformed(evt);            }        });        jLabel2.setText("发布公告:");        jButton1.setText("发送");        jButton1.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                jButton1ActionPerformed(evt);            }        });        userList.setBorder(javax.swing.BorderFactory.createTitledBorder("登陆用户"));        jScrollPane1.setViewportView(userList);        showAllUsers.setText("显示所有用户信息");        showAllUsers.addActionListener(new java.awt.event.ActionListener() {            public void actionPerformed(java.awt.event.ActionEvent evt) {                showAllUsersActionPerformed(evt);            }        });        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());        getContentPane().setLayout(layout);        layout.setHorizontalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addContainerGap()                .addComponent(jLabel1)                .addGap(18, 18, 18)                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE)                .addGap(29, 29, 29)                .addComponent(ListenButton)                .addGap(18, 18, 18)                .addComponent(ClearButton)                .addContainerGap(28, Short.MAX_VALUE))            .addGroup(layout.createSequentialGroup()                .addGap(22, 22, 22)                .addComponent(jLabel2)                .addGap(18, 18, 18)                .addComponent(editArea, javax.swing.GroupLayout.DEFAULT_SIZE, 319, Short.MAX_VALUE)                .addGap(26, 26, 26)                .addComponent(jButton1)                .addContainerGap())            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()                .addContainerGap()                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)                    .addComponent(showAllUsers, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 129, Short.MAX_VALUE))                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 367, javax.swing.GroupLayout.PREFERRED_SIZE))        );        layout.setVerticalGroup(            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)            .addGroup(layout.createSequentialGroup()                .addContainerGap()                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(ListenButton)                    .addComponent(ClearButton)                    .addComponent(jLabel1)                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)                    .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE)                    .addGroup(layout.createSequentialGroup()                        .addComponent(showAllUsers, javax.swing.GroupLayout.DEFAULT_SIZE, 28, Short.MAX_VALUE)                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 261, javax.swing.GroupLayout.PREFERRED_SIZE)))                .addGap(12, 12, 12)                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)                    .addComponent(editArea, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)                    .addComponent(jLabel2)                    .addComponent(jButton1))                .addContainerGap())        );        pack();    }// </editor-fold>//GEN-END:initComponents    private void ListenButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ListenButtonActionPerformed        // TODO add your handling code here:        if (listening[0]) {            listening[0] = false;            serverThreadManager.stopListen();            ListenButton.setText("开启服务");            StateListM.addElement("关闭监听");        } else {            listening[0] = true;            serverThreadManager = new ServerThreadManager(server, listening, StateListM,UserListM);            serverThreadManager.start();            ListenButton.setText("关闭服务");        }}//GEN-LAST:event_ListenButtonActionPerformed    private void ClearButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ClearButtonActionPerformed        // TODO add your handling code here:        StateListM.clear();    }//GEN-LAST:event_ClearButtonActionPerformed    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed        try {            // TODO add your handling code here:            String str = editArea.getText();            editArea.setText(null);            serverThreadManager.publishInfo(str);            StateListM.addElement("发布公告:" + str);        } catch (IOException ex) {            Logger.getLogger(ServerFrame.class.getName()).log(Level.SEVERE, null, ex);        }    }//GEN-LAST:event_jButton1ActionPerformed    private void showAllUsersActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_showAllUsersActionPerformed        // TODO add your handling code here:        ShowUsersJDialog showUsersJDialog=new ShowUsersJDialog(this,true);        showUsersJDialog.setVisible(true);    }//GEN-LAST:event_showAllUsersActionPerformed    /**     * @param args the command line arguments     */    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new ServerFrame().setVisible(true);            }        });    }    // Variables declaration - do not modify//GEN-BEGIN:variables    private javax.swing.JButton ClearButton;    private javax.swing.JButton ListenButton;    private javax.swing.JList StateList;    private javax.swing.JTextField editArea;    private javax.swing.JButton jButton1;    private javax.swing.JLabel jLabel1;    private javax.swing.JLabel jLabel2;    private javax.swing.JScrollPane jScrollPane1;    private javax.swing.JScrollPane jScrollPane2;    private javax.swing.JTextField jTextField1;    private javax.swing.JButton showAllUsers;    private javax.swing.JList userList;    // End of variables declaration//GEN-END:variables}

⌨️ 快捷键说明

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