📄 servermanager.java
字号:
package com.sato.server.servermanager;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.io.File;
import java.net.ServerSocket;
import java.util.Vector;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.DefaultTableModel;
import com.sato.server.ServerFrame;
import com.sato.server.dao.factory.DAOFactory;
import com.sun.org.apache.bcel.internal.generic.NEW;
public class ServerManager extends JPanel{
private JPanel jp1;
private JPanel serverjp;
private JPanel messagePanel;
private JPanel configPanel;
private JPanel callPanel;
private JSplitPane jsp1;
private JSplitPane jsp2;
private JSplitPane jsp3;
private JTextArea jta1;
private JTextArea messageArea;
private JTextArea callArea;
private JScrollPane jscrol1;
private JScrollPane messageScroll;
private JScrollPane callScroll;
private JButton runbutton;
private JButton stopbutton;
private JButton foreoffbuton;
private JButton emitButton;
private Border b1;
private Border b2;
private Border b3;
private Border b4;
private JLabel jlabel1;
private ServerFrame sframe;
private JTable jtableonline;
private ServerSocket ss;
/**
* @param args
*/
public ServerManager(ServerFrame sframe){
//服务列表
jp1=new JPanel ();
jp1.setLayout(new BorderLayout());
jta1=new JTextArea();
serverjp=new JPanel();
b1=BorderFactory.createTitledBorder("在线用户");
serverjp.setBorder(b1);
serverjp.setLayout(new BorderLayout());
Vector<String> columnNames = new Vector<String>();
columnNames.add("QQ号码");
columnNames.add("姓名");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("地址");
columnNames.add("在线状态");
columnNames.add("注册时间");
Vector<Vector<String>> datas = null;
DefaultTableModel dataModel = new DefaultTableModel(datas, columnNames){
public boolean isCellEditable(int row, int column) {
return false;
}
};
jtableonline=new JTable();
jtableonline.setModel(dataModel);
// //2. 大小固定
jtableonline.getTableHeader().setResizingAllowed(false);// 大小不可以调
// 3. 不能换位
jtableonline.getTableHeader().setReorderingAllowed(false);// 设置列不可移动
JtableOline jtablelisten=new JtableOline(this);
jtableonline.getSelectionModel().addListSelectionListener(jtablelisten);
jscrol1=new JScrollPane(jtableonline);
serverjp.add(jscrol1,BorderLayout.CENTER);
//通讯信息提醒
b2=BorderFactory.createTitledBorder("通讯信息提醒");
messageArea=new JTextArea();
messageScroll=new JScrollPane(messageArea);
messagePanel=new JPanel();
messagePanel.setLayout(new BorderLayout());
messagePanel.setBorder(b2);
messagePanel.add(messageScroll,BorderLayout.CENTER);
//服务器管理
b3=BorderFactory.createTitledBorder("服务器管理");
configPanel=new JPanel();
configPanel.setBorder(b3);
jlabel1 = new JLabel(new ImageIcon("./images/total/serverstop.gif"));
configPanel.setLayout(new BorderLayout());
Box box1=Box.createVerticalBox();
Box box2=Box.createHorizontalBox();
runbutton=new JButton("启动通讯服务");
stopbutton=new JButton("停止通讯服务");
foreoffbuton=new JButton("强制用户下线");
stopbutton.setEnabled(false);
foreoffbuton.setEnabled(false);
box1.add(runbutton);
box1.add(Box.createVerticalStrut(10));
box1.add(stopbutton);
box1.add(Box.createVerticalStrut(80));
box1.add(foreoffbuton);
box2.add(jlabel1);
box2.add(Box.createHorizontalStrut(20));
box2.add(box1);
configPanel.add(box2,BorderLayout.CENTER);
//公告发送
b4=BorderFactory.createTitledBorder("公告发送");
Box box3=Box.createHorizontalBox();
emitButton=new JButton("发送");
box3.add(Box.createHorizontalStrut(280));
box3.add(emitButton);
callArea=new JTextArea();
callScroll=new JScrollPane(callArea);
callPanel=new JPanel();
callPanel.setLayout(new BorderLayout());
callPanel.setBorder(b4);
callPanel.add(callScroll,BorderLayout.CENTER);
callPanel.add(box3,BorderLayout.SOUTH);
//分割组件
jsp1=new JSplitPane(JSplitPane.VERTICAL_SPLIT,messagePanel,callPanel);
jsp1.setDividerLocation(100);
jsp2=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jsp1,configPanel);
jsp2.setDividerLocation(360);
jsp3=new JSplitPane(JSplitPane.VERTICAL_SPLIT,serverjp,jsp2);
jsp3.setDividerLocation(220);
ServerListener slistener=new ServerListener(this,sframe);
runbutton.addActionListener(slistener);
stopbutton.addActionListener(slistener);
foreoffbuton.addActionListener(slistener);
emitButton.addActionListener(slistener);
this.setLayout(new BorderLayout());
this.add(jsp3,BorderLayout.CENTER);
}
public JTextArea getMessageArea() {
return messageArea;
}
public void setMessageArea(JTextArea messageArea) {
this.messageArea = messageArea;
}
public JTextArea getCallArea() {
return callArea;
}
public void setCallArea(JTextArea callArea) {
this.callArea = callArea;
}
public JButton getRunbutton() {
return runbutton;
}
public void setRunbutton(JButton runbutton) {
this.runbutton = runbutton;
}
public JButton getStopbutton() {
return stopbutton;
}
public void setStopbutton(JButton stopbutton) {
this.stopbutton = stopbutton;
}
public JButton getForeoffbuton() {
return foreoffbuton;
}
public void setForeoffbuton(JButton foreoffbuton) {
this.foreoffbuton = foreoffbuton;
}
public JButton getEmitButton() {
return emitButton;
}
public void setEmitButton(JButton emitButton) {
this.emitButton = emitButton;
}
public JPanel getServerjp() {
return serverjp;
}
public void setServerjp(JPanel serverjp) {
this.serverjp = serverjp;
}
public JTable getJtableonline() {
return jtableonline;
}
public void setJtableonline(JTable jtableonline) {
this.jtableonline = jtableonline;
}
public JLabel getJlabel1() {
return jlabel1;
}
public void setJlabel1(JLabel jlabel1) {
this.jlabel1 = jlabel1;
}
public ServerSocket getSs() {
return ss;
}
public void setSs(ServerSocket ss) {
this.ss = ss;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -