Java聊天室

匿名 (未验证) 提交于 2019-12-02 20:59:24

1.首先是服务器的界面实现,如下:

2.如何实现呢?主要使用swing和awt,首先整个是一个Frame容器,然后设定它的布局为BoderLayout,最上边的是一个Panel,设定它的布局为GridLayout,中间使用了JSplitPane,把左右两个面板放在里面

 package Chat; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.BindException; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.StringTokenizer;   import javax.swing.DefaultListModel; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.TitledBorder;  public class Server { 	private JFrame frame; 	private JTextArea contentArea;     private JTextField txt_message;     private JTextField txt_max;     private JTextField txt_port;     private JButton btn_start;     private JButton btn_stop;     private JButton btn_send;     private JPanel northPanel;     private JPanel southPanel;     private JScrollPane rightPanel;     private JScrollPane leftPanel;     private JSplitPane centerSplit;     private JList userList;     private DefaultListModel listModel;          private ServerSocket serverSocket;     //private ServerThread serverThread;     //private ArrayList<ClientThread> clients;     private boolean isStart = false;          public static void main(String []args)     {     	new Server();     }          public Server() {     	frame = new JFrame("服务器");     	//放在bin下包中文件     	frame.setIconImage(Toolkit.getDefaultToolkit().createImage(Server.class.getResource("qq.jpg")));         contentArea = new JTextArea();         contentArea.setEditable(false);         contentArea.setForeground(Color.pink);     	txt_message = new JTextField();     	txt_max = new JTextField("30");     	txt_port = new JTextField("6666");     	btn_start = new JButton("启动");     	btn_stop = new JButton("停止");     	btn_send = new JButton("发送");     	btn_stop.setEnabled(false);     	//使用了defaultListModel可以是列表的可选项是动态改变的!如果不用,列表中只能出现代码中定义的那些可选项     	listModel = new DefaultListModel();     	     	southPanel = new JPanel(new BorderLayout());     	southPanel.setBorder(new TitledBorder("写消息"));     	southPanel.add(txt_message,"Center");     	southPanel.add(btn_send,"East");     	leftPanel = new JScrollPane(userList);     	leftPanel.setBorder(new TitledBorder("在线用户"));              	rightPanel = new JScrollPane(contentArea);     	rightPanel.setBorder(new TitledBorder("消息显示区"));     	     	centerSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,rightPanel);         northPanel = new JPanel();         northPanel.setLayout(new GridLayout(1,6));         northPanel.add(new JLabel("人数上限"));         northPanel.add(txt_max);         northPanel.add(new JLabel("端口"));         northPanel.add(txt_port);         northPanel.add(btn_start);         northPanel.add(btn_stop);         northPanel.setBorder(new TitledBorder("配置信息"));         frame.setLayout(new BorderLayout());         frame.add(northPanel,"North");         frame.add(centerSplit,"Center");         frame.add(southPanel, "South");     	frame.setSize(600, 400);      	int screen_width = Toolkit.getDefaultToolkit().getScreenSize().width;     	int screen_height = Toolkit.getDefaultToolkit().getScreenSize().height;         frame.setLocation((screen_width-frame.getWidth())/2,(screen_height-frame.getHeight())/2);     	         frame.setVisible(true);     } }

文章来源: Java聊天室
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!