java实现一个窗口 - Go语言中文社区

java实现一个窗口


    1. import java.awt.BorderLayout;  
    2. import java.awt.Color;  
    3. import java.awt.GridLayout;  
    4. import java.awt.Toolkit;  
    5. import java.awt.event.ActionEvent;  
    6. import java.awt.event.ActionListener;  
    7. import java.awt.event.WindowAdapter;  
    8. import java.awt.event.WindowEvent;  
    9. import java.io.BufferedReader;  
    10. import java.io.IOException;  
    11. import java.io.InputStreamReader;  
    12. import java.io.PrintWriter;  
    13. import java.net.BindException;  
    14. import java.net.ServerSocket;  
    15. import java.net.Socket;  
    16. import java.util.ArrayList;  
    17. import java.util.StringTokenizer;  
    18.   
    19. import javax.swing.DefaultListModel;  
    20. import javax.swing.JButton;  
    21. import javax.swing.JFrame;  
    22. import javax.swing.JLabel;  
    23. import javax.swing.JList;  
    24. import javax.swing.JOptionPane;  
    25. import javax.swing.JPanel;  
    26. import javax.swing.JScrollPane;  
    27. import javax.swing.JSplitPane;  
    28. import javax.swing.JTextArea;  
    29. import javax.swing.JTextField;  
    30. import javax.swing.border.TitledBorder;  
    31.   
    32. public class Server {  
    33.   
    34.     private JFrame frame;  
    35.     private JTextArea contentArea;  
    36.     private JTextField txt_message;  
    37.     private JTextField txt_max;  
    38.     private JTextField txt_port;  
    39.     private JButton btn_start;  
    40.     private JButton btn_stop;  
    41.     private JButton btn_send;  
    42.     private JPanel northPanel;  
    43.     private JPanel southPanel;  
    44.     private JScrollPane rightPanel;  
    45.     private JScrollPane leftPanel;  
    46.     private JSplitPane centerSplit;  
    47.     private JList userList;  
    48.     private DefaultListModel listModel;  
    49.   
    50.     private ServerSocket serverSocket;  
    51.     private ServerThread serverThread;  
    52.     private ArrayList<ClientThread> clients;  
    53.   
    54.     private boolean isStart = false;  
    55.   
    56.     // 主方法,程序执行入口  
    57.     public static void main(String[] args) {  
    58.         new Server();  
    59.     } 

  1. public Server() {  
  2.         frame = new JFrame("服务器");  
  3.         // 更改JFrame的图标:  
  4.         //frame.setIconImage(Toolkit.getDefaultToolkit().createImage(Client.class.getResource("qq.png")));  
  5.         frame.setIconImage(Toolkit.getDefaultToolkit().createImage(Server.class.getResource("qq.png")));  
  6.         contentArea = new JTextArea();  
  7.         contentArea.setEditable(false);  
  8.         contentArea.setForeground(Color.blue);  
  9.         txt_message = new JTextField();  
  10.         txt_max = new JTextField("30");  
  11.         txt_port = new JTextField("6666");  
  12.         btn_start = new JButton("启动");  
  13.         btn_stop = new JButton("停止");  
  14.         btn_send = new JButton("发送");  
  15.         btn_stop.setEnabled(false);  
  16.         listModel = new DefaultListModel();  
  17.         userList = new JList(listModel);  
  18.   
  19.         southPanel = new JPanel(new BorderLayout());  
  20.         southPanel.setBorder(new TitledBorder("写消息"));  
  21.         southPanel.add(txt_message, "Center");  
  22.         southPanel.add(btn_send, "East");  
  23.         leftPanel = new JScrollPane(userList);  
  24.         leftPanel.setBorder(new TitledBorder("在线用户"));  
  25.   
  26.         rightPanel = new JScrollPane(contentArea);  
  27.         rightPanel.setBorder(new TitledBorder("消息显示区"));  
  28.   
  29.         centerSplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftPanel,  
  30.                 rightPanel);  
  31.         centerSplit.setDividerLocation(100);  
  32.         northPanel = new JPanel();  
  33.         northPanel.setLayout(new GridLayout(1, 6));  
  34.         northPanel.add(new JLabel("人数上限"));  
  35.         northPanel.add(txt_max);  
  36.         northPanel.add(new JLabel("端口"));  
  37.         northPanel.add(txt_port);  
  38.         northPanel.add(btn_start);  
  39.         northPanel.add(btn_stop);  
  40.         northPanel.setBorder(new TitledBorder("配置信息"));  
  41.   
  42.         frame.setLayout(new BorderLayout());  
  43.         frame.add(northPanel, "North"); 
  44.         frame.add(centerSplit, "Center");  
  45.         frame.add(southPanel, "South");  
  46.         frame.setSize(600, 400);  
  47.         //frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());//设置全屏  
  48.         int screen_width = Toolkit.getDefaultToolkit().getScreenSize().width;  
  49.         int screen_height = Toolkit.getDefaultToolkit().getScreenSize().height;  
  50.         frame.setLocation((screen_width - frame.getWidth()) / 2,  
  51.                 (screen_height - frame.getHeight()) / 2);  
  52.         frame.setVisible(true); 
  53. }


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/code_dreamers/article/details/72896514
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-04-18 22:26:03
  • 阅读 ( 1431 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢