📄 serverframe.java.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 + -