📄 adminframe.java
字号:
package com.cnu.cie.olts.client.admin;import java.awt.BorderLayout;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextField;import javax.swing.JTextPane;import javax.swing.JToolBar;import javax.swing.WindowConstants;import javax.swing.SwingUtilities;import com.cnu.cie.olts.client.AboutJPanel;import com.cnu.cie.olts.client.BriefAnswerJPanel;import com.cnu.cie.olts.client.FillBlankJPanel;import com.cnu.cie.olts.client.ItemInfo;import com.cnu.cie.olts.client.Login;import com.cnu.cie.olts.client.TrueFalseJPanel;import com.cnu.cie.olts.client.multipleChoiceJPanel;import com.cnu.cie.olts.client.singleChoiceJPanel;import com.cnu.cie.olts.client.teacher.AddNewItemInfoJPanel;import com.cnu.cie.olts.client.teacher.itemManageJPanel;public class AdminFrame extends javax.swing.JFrame { private JMenuBar adminMenuBar; public static JMenuItem reconnectMenuItem; private JMenuItem helpMenuItem; private JScrollPane jScrollPane1; private static JPanel mainPanel; private JPanel titlepanel; private JButton AddNewUserButton; private JButton UserMaintenanceButton; public static JButton reconnectButton; private JToolBar adminToolBar; private JMenu aboutMenu; private JMenuItem exitMenuItem; private JMenu jMenu1; private JMenu UserManageMenu; private JMenuItem AddNewUserMenuItem; private JMenuItem UserMaintenanceMenuItem; String currentstate; Socket socket; public static BufferedReader bufreader=null; public static PrintWriter pswriter=null; static UserInfo[] userinfo; /** * Auto-generated main method to display this JFrame */ /*public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { // AdminFrame inst = new AdminFrame(); // inst.setLocationRelativeTo(null); // inst.setVisible(true); } }); } */ public AdminFrame(Socket socket,BufferedReader bufreader,PrintWriter pswriter) { super(); initGUI();// Dimension screen=Toolkit.getDefaultToolkit().getScreenSize(); // setLocation(((screen.width-this.WIDTH)/2),((screen.height-this.HEIGHT)/2)); this.socket=socket; this.bufreader=bufreader; this.pswriter=pswriter; } //实现关闭登录程序要进行的操作 protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { try { if(socket!=null&&!socket.isClosed()){ socket.close(); socket=null; } if(bufreader!=null) bufreader.close(); if(pswriter!=null) pswriter.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.exit(0); } } //添加新试题 private void AddNewUserButtonActionPerformed(ActionEvent evt) { mainPanel.removeAll(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(new AddNewUserJPanel(),BorderLayout.CENTER); mainPanel.validate(); mainPanel.repaint(); } //已有用户信息维护 private void UserMaintenanceButtonActionPerformed(ActionEvent evt) { String msg="GETUSERINFO:"; msg=new String(msg.getBytes()); pswriter.println(msg); pswriter.flush(); String USERstrinfo=null; try { USERstrinfo=bufreader.readLine(); String[] QAstrarray=USERstrinfo.split("@_@"); if("USERINFO".equals(QAstrarray[0])){ userinfo=new UserInfo[QAstrarray.length-1]; if(QAstrarray.length>1){ for(int i=1;i<QAstrarray.length;i++){ System.out.println(QAstrarray[i]); String[] QAarray=QAstrarray[i].split("&_&"); int userid=Integer.parseInt(QAarray[0]); String usernamestr=QAarray[1]; String passwordstr=QAarray[2]; String statusstr=QAarray[3]; userinfo[i-1]=new UserInfo(userid,usernamestr,passwordstr,statusstr); } } else { JOptionPane.showMessageDialog(null,"当前库中吴用户信息,请添加新用户信息","联机测试系统",JOptionPane.ERROR_MESSAGE); } } else { JOptionPane.showMessageDialog(null,"用户信息获取失败","联机测试系统",JOptionPane.ERROR_MESSAGE); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); JOptionPane.showMessageDialog(null,"IO异常,请重新连接","联机测试系统",JOptionPane.ERROR_MESSAGE); reconnectButton.setEnabled(true); reconnectMenuItem.setEnabled(true); } if(USERstrinfo==null){ JOptionPane.showMessageDialog(null,"与服务器的连接已经中断,请重新连接","联机测试系统",JOptionPane.ERROR_MESSAGE); reconnectButton.setEnabled(true); reconnectMenuItem.setEnabled(true); return ; } mainPanel.removeAll(); mainPanel.setLayout(new BorderLayout()); mainPanel.add(new userManageJPanel(userinfo),BorderLayout.CENTER); mainPanel.validate(); mainPanel.repaint(); } //重新连接服务器 private void reconnectButtonActionPerformed(ActionEvent evt) { String id=Login.id; String ps=Login.ps; String status=Login.status; String serverip=Login.serverip; int serverport=Login.serverport; try { if(socket!=null&&!socket.isClosed()) socket.close(); bufreader.close(); pswriter.close(); socket=new Socket(serverip,serverport); bufreader=new BufferedReader(new InputStreamReader(socket.getInputStream())); pswriter=new PrintWriter(socket.getOutputStream()); String st="LOGIN:"+id+":"+ps+":"+status; st=new String(st.getBytes()); pswriter.println(st); pswriter.flush(); reconnectButton.setEnabled(false); reconnectMenuItem.setEnabled(false); new Thread(){public void run(){ String loginfostring = ""; try { loginfostring = bufreader.readLine(); } catch (IOException e) { // TODO Auto-generated catch block if(socket!=null&&!socket.isClosed()) System.out.println(e.getMessage()); reconnectButton.setEnabled(true); reconnectMenuItem.setEnabled(true); } if(loginfostring==null){ JOptionPane.showMessageDialog(null,"网络不通或者服务器没开启服务","连接失败",JOptionPane.ERROR_MESSAGE); reconnectButton.setEnabled(true); reconnectMenuItem.setEnabled(true); } else if("LOGINSUCC".equals(loginfostring)){ JOptionPane.showMessageDialog(null,"重新连接成功","连接成功",JOptionPane.INFORMATION_MESSAGE); } else if("ALREADYONLINE".equals(loginfostring)){ JOptionPane.showMessageDialog(null,"你已经在线了,不能重复登录","登录失败",JOptionPane.ERROR_MESSAGE); reconnectButton.setEnabled(true); reconnectMenuItem.setEnabled(true); } }}.start(); } catch (Exception e1) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null,"网络连接失败,请检查网络设置以及目标主机服务是否启动","登录失败",JOptionPane.ERROR_MESSAGE); reconnectButton.setEnabled(true); reconnectMenuItem.setEnabled(true); if(socket!=null&&!socket.isClosed()) try { socket.close(); } catch (IOException e) { System.out.println(e.getMessage()); } System.out.println(e1.getMessage()); } System.out.println("id--"+id); System.out.println("ps--"+ps); System.out.println("state--"+status); System.out.println("ip--"+serverip); System.out.println("port--"+serverport); System.out.println("reconnect"); } //退出系统 private void exitMenuItemActionPerformed(ActionEvent evt) { try { if(socket!=null&&!socket.isClosed()){ socket.close(); socket=null; } if(bufreader!=null) bufreader.close(); if(pswriter!=null) pswriter.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } System.exit(0); } private void initGUI() { try { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); this.setTitle("\u8054\u673a\u6d4b\u8bd5\u7cfb\u7edf"); this.setResizable(false); getContentPane().setLayout(null); { adminToolBar = new JToolBar(); getContentPane().add(adminToolBar); adminToolBar.setBounds(0, 2, 100, 26); { AddNewUserButton = new JButton(new ImageIcon("images/addUser.gif")); adminToolBar.add(AddNewUserButton); AddNewUserButton.setToolTipText("添加用户"); AddNewUserButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { AddNewUserButtonActionPerformed(evt); } }); } { UserMaintenanceButton = new JButton(new ImageIcon("images/UserManage.gif")); adminToolBar.add(UserMaintenanceButton); UserMaintenanceButton.setToolTipText("已有用户信息维护"); UserMaintenanceButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { UserMaintenanceButtonActionPerformed(evt); } }); } { reconnectButton = new JButton(new ImageIcon("images/reconnect.gif")); adminToolBar.add(reconnectButton); reconnectButton.setToolTipText("重新连接服务器"); reconnectButton.setEnabled(false); reconnectButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { reconnectButtonActionPerformed(evt); } }); } } { jScrollPane1 = new JScrollPane(); getContentPane().add(jScrollPane1); jScrollPane1.setBounds(0, 34, 623, 419); { mainPanel = new JPanel(); jScrollPane1.setViewportView(mainPanel); mainPanel.setPreferredSize(new java.awt.Dimension(620, 406)); } } { adminMenuBar = new JMenuBar(); setJMenuBar(adminMenuBar); { jMenu1 = new JMenu(); adminMenuBar.add(jMenu1); jMenu1.setText("\u6587\u4ef6"); { reconnectMenuItem = new JMenuItem(); jMenu1.add(reconnectMenuItem); reconnectMenuItem.setText("\u91cd\u65b0\u8fde\u63a5"); reconnectMenuItem.setEnabled(false); reconnectMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { reconnectButtonActionPerformed(evt); } }); } { exitMenuItem = new JMenuItem(); jMenu1.add(exitMenuItem); exitMenuItem.setText("\u9000\u51fa"); exitMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { exitMenuItemActionPerformed(evt); } }); } } { UserManageMenu = new JMenu(); adminMenuBar.add(UserManageMenu); UserManageMenu.setText("用户管理"); { AddNewUserMenuItem = new JMenuItem(); UserManageMenu.add(AddNewUserMenuItem); AddNewUserMenuItem.setText("添加新用户"); AddNewUserMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { AddNewUserButtonActionPerformed(evt); } }); } { UserMaintenanceMenuItem = new JMenuItem(); UserManageMenu.add(UserMaintenanceMenuItem); UserMaintenanceMenuItem.setText("用户维护"); UserMaintenanceMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { UserMaintenanceButtonActionPerformed(evt); } }); } } { aboutMenu = new JMenu(); adminMenuBar.add(aboutMenu); aboutMenu.setText("\u5173\u4e8e"); { helpMenuItem = new JMenuItem(); aboutMenu.add(helpMenuItem); helpMenuItem.setText("\u5e2e\u52a9"); helpMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { mainPanel.removeAll(); mainPanel.add(new AboutJPanel(),BorderLayout.CENTER); mainPanel.validate(); } }); } } } pack(); setSize(631, 514); } catch (Exception e) { e.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -