package four;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

import lombok.Data;

/**
 * 投票的服务器
 * 
 * @author czx
 *
 */
@Data
public class VoteServer {

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					VoteServer window = new VoteServer();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public VoteServer() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 488, 390);
		frame.setTitle("");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		JPanel panel = new JPanel();
		frame.getContentPane().add(panel, BorderLayout.NORTH);

		JLabel lblNewLabel = new JLabel("\u670D\u52A1\u5668\u4FE1\u606F");
		lblNewLabel.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel.add(lblNewLabel);

		textField = new JTextField();
		textField.setText("127.0.0.1");
		panel.add(textField);
		textField.setColumns(10);

		textField_1 = new JTextField();
		textField_1.setText("10086");
		panel.add(textField_1);
		textField_1.setColumns(5);

		JButton btnNewButton = new JButton("\u5F00\u542F");
		btnNewButton.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					btnNewButton.setEnabled(false); // 禁用按钮,避免重复启动
					String hostName = textField.getText();// 主机名
					int hostPort = Integer.parseInt(textField_1.getText());// 端口
					// 构建服务器的SocketAddress格式地址
					SocketAddress serverAddr = new InetSocketAddress(InetAddress.getByName(hostName), hostPort);
					listenSocket = new ServerSocket(); // 创建侦听套接字
					listenSocket.bind(serverAddr); // 绑定到工作地址

				} catch (IOException ex) {
				}

				// 创建一个匿名线程,用于侦听和接受客户机连接,并创建响应客户机的会话线程
				new Thread(new Runnable() {

					@Override
					public void run() {
						try {
							while (true) { // 处理客户机连接
								toClientSocket = listenSocket.accept();// 侦听并接受客户机连接
								clientCounts++;// 客户机数量加1
								// 创建客户线程clientThread,实现一客户一线程
								Thread VoteThread = new VoteThread(toClientSocket, clientCounts);
								VoteThread.start(); // 启动任务线程
							} // end while
						} catch (IOException ex) {
							JOptionPane.showMessageDialog(null, ex.getMessage(), "错误提示", JOptionPane.ERROR_MESSAGE);
						}
					}// end run()
				}).start();
			}
		});

		panel.add(btnNewButton);

		JPanel panel_1 = new JPanel();
		frame.getContentPane().add(panel_1, BorderLayout.CENTER);
		panel_1.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)), "信息框", TitledBorder.LEADING,
				TitledBorder.TOP, null, new Color(59, 59, 59)));
		panel_1.setLayout(new GridLayout(0, 1, 0, 0));

		JPanel panel_2 = new JPanel();
		panel_1.add(panel_2);

		JLabel lblNewLabel_1 = new JLabel("\u4E00\u53F7\u5019\u9009\u4EBA\uFF1A");
		lblNewLabel_1.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_2.add(lblNewLabel_1);

		textField_2 = new JTextField();
		panel_2.add(textField_2);
		textField_2.setColumns(10);

		JButton btnNewButton_1 = new JButton("\u786E\u8BA4");

		btnNewButton_1.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_2.add(btnNewButton_1);

		JPanel panel_3 = new JPanel();
		panel_1.add(panel_3);

		JLabel lblNewLabel_2 = new JLabel("\u4E8C\u53F7\u5019\u9009\u4EBA\uFF1A");
		lblNewLabel_2.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_3.add(lblNewLabel_2);

		textField_3 = new JTextField();
		panel_3.add(textField_3);
		textField_3.setColumns(10);

		JButton btnNewButton_2 = new JButton("\u786E\u8BA4");

		btnNewButton_2.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_3.add(btnNewButton_2);

		JPanel panel_4 = new JPanel();
		panel_1.add(panel_4);

		JLabel lblNewLabel_3 = new JLabel("\u4E09\u53F7\u5019\u9009\u4EBA\uFF1A");
		lblNewLabel_3.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_4.add(lblNewLabel_3);

		textField_4 = new JTextField();
		panel_4.add(textField_4);
		textField_4.setColumns(10);

		JButton btnNewButton_3 = new JButton("\u786E\u8BA4");
		panel_4.add(btnNewButton_3);

		btnNewButton_3.setFont(new Font("微软雅黑", Font.PLAIN, 12));

		JPanel panel_5 = new JPanel();
		panel_1.add(panel_5);

		JLabel lblNewLabel_4 = new JLabel("\u56DB\u53F7\u5019\u9009\u4EBA\uFF1A");
		lblNewLabel_4.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_5.add(lblNewLabel_4);

		textField_5 = new JTextField();
		panel_5.add(textField_5);
		textField_5.setColumns(10);

		JButton btnNewButton_4 = new JButton("\u786E\u8BA4");
		panel_5.add(btnNewButton_4);

		btnNewButton_4.setFont(new Font("微软雅黑", Font.PLAIN, 12));

		JPanel panel_6 = new JPanel();
		panel_1.add(panel_6);

		JLabel lblNewLabel_5 = new JLabel("\u4E94\u53F7\u5019\u9009\u4EBA\uFF1A");
		lblNewLabel_5.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		panel_6.add(lblNewLabel_5);

		textField_6 = new JTextField();
		panel_6.add(textField_6);
		textField_6.setColumns(10);

		JButton btnNewButton_5 = new JButton("\u786E\u8BA4");
		panel_6.add(btnNewButton_5);

		btnNewButton_5.setFont(new Font("微软雅黑", Font.PLAIN, 12));

		JPanel panel_7 = new JPanel();
		panel_7.setBackground(Color.WHITE);
		panel_7.setBorder(new TitledBorder(new LineBorder(new Color(0, 0, 0)), "候选人信息", TitledBorder.LEADING,
				TitledBorder.TOP, null, new Color(59, 59, 59)));
		frame.getContentPane().add(panel_7, BorderLayout.EAST);
		GridBagLayout gbl_panel_7 = new GridBagLayout();
		gbl_panel_7.columnWidths = new int[] { 0, 0, 0, 0 };
		gbl_panel_7.rowHeights = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
		gbl_panel_7.columnWeights = new double[] { 0.0, 1.0, 1.0, Double.MIN_VALUE };
		gbl_panel_7.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE };
		panel_7.setLayout(gbl_panel_7);

		JLabel lblNewLabel_6 = new JLabel("Null");
		lblNewLabel_6.setVerticalAlignment(SwingConstants.BOTTOM);
		GridBagConstraints gbc_lblNewLabel_6 = new GridBagConstraints();
		gbc_lblNewLabel_6.anchor = GridBagConstraints.EAST;
		gbc_lblNewLabel_6.insets = new Insets(0, 0, 5, 5);
		gbc_lblNewLabel_6.gridx = 0;
		gbc_lblNewLabel_6.gridy = 0;
		panel_7.add(lblNewLabel_6, gbc_lblNewLabel_6);

		textField_7 = new JTextField();
		// textField_7.setEditable(false);
		GridBagConstraints gbc_textField_7 = new GridBagConstraints();
		gbc_textField_7.insets = new Insets(0, 0, 5, 5);
		gbc_textField_7.fill = GridBagConstraints.HORIZONTAL;
		gbc_textField_7.gridx = 1;
		gbc_textField_7.gridy = 0;
		panel_7.add(textField_7, gbc_textField_7);
		textField_7.setColumns(10);

		JLabel lblNewLabel_7 = new JLabel("Null");
		GridBagConstraints gbc_lblNewLabel_7 = new GridBagConstraints();
		gbc_lblNewLabel_7.insets = new Insets(0, 0, 5, 5);
		gbc_lblNewLabel_7.gridx = 0;
		gbc_lblNewLabel_7.gridy = 1;
		panel_7.add(lblNewLabel_7, gbc_lblNewLabel_7);

		textField_8 = new JTextField();
		// textField_8.setEditable(false);
		GridBagConstraints gbc_textField_8 = new GridBagConstraints();
		gbc_textField_8.insets = new Insets(0, 0, 5, 5);
		gbc_textField_8.fill = GridBagConstraints.HORIZONTAL;
		gbc_textField_8.gridx = 1;
		gbc_textField_8.gridy = 1;
		panel_7.add(textField_8, gbc_textField_8);
		textField_8.setColumns(10);

		JLabel lblNewLabel_8 = new JLabel("Null");
		GridBagConstraints gbc_lblNewLabel_8 = new GridBagConstraints();
		gbc_lblNewLabel_8.anchor = GridBagConstraints.EAST;
		gbc_lblNewLabel_8.insets = new Insets(0, 0, 5, 5);
		gbc_lblNewLabel_8.gridx = 0;
		gbc_lblNewLabel_8.gridy = 2;
		panel_7.add(lblNewLabel_8, gbc_lblNewLabel_8);

		textField_9 = new JTextField();
		// textField_9.setEditable(false);
		GridBagConstraints gbc_textField_9 = new GridBagConstraints();
		gbc_textField_9.insets = new Insets(0, 0, 5, 5);
		gbc_textField_9.fill = GridBagConstraints.HORIZONTAL;
		gbc_textField_9.gridx = 1;
		gbc_textField_9.gridy = 2;
		panel_7.add(textField_9, gbc_textField_9);
		textField_9.setColumns(10);

		JLabel lblNewLabel_9 = new JLabel("Null");
		GridBagConstraints gbc_lblNewLabel_9 = new GridBagConstraints();
		gbc_lblNewLabel_9.anchor = GridBagConstraints.EAST;
		gbc_lblNewLabel_9.insets = new Insets(0, 0, 5, 5);
		gbc_lblNewLabel_9.gridx = 0;
		gbc_lblNewLabel_9.gridy = 3;
		panel_7.add(lblNewLabel_9, gbc_lblNewLabel_9);

		textField_10 = new JTextField();
		// textField_10.setEditable(false);
		GridBagConstraints gbc_textField_10 = new GridBagConstraints();
		gbc_textField_10.insets = new Insets(0, 0, 5, 5);
		gbc_textField_10.fill = GridBagConstraints.HORIZONTAL;
		gbc_textField_10.gridx = 1;
		gbc_textField_10.gridy = 3;
		panel_7.add(textField_10, gbc_textField_10);
		textField_10.setColumns(10);

		JLabel lblNewLabel_10 = new JLabel("Null");
		GridBagConstraints gbc_lblNewLabel_10 = new GridBagConstraints();
		gbc_lblNewLabel_10.anchor = GridBagConstraints.EAST;
		gbc_lblNewLabel_10.insets = new Insets(0, 0, 5, 5);
		gbc_lblNewLabel_10.gridx = 0;
		gbc_lblNewLabel_10.gridy = 4;
		panel_7.add(lblNewLabel_10, gbc_lblNewLabel_10);

		textField_11 = new JTextField();
		// textField_11.setEditable(false);
		GridBagConstraints gbc_textField_11 = new GridBagConstraints();
		gbc_textField_11.insets = new Insets(0, 0, 5, 5);
		gbc_textField_11.fill = GridBagConstraints.HORIZONTAL;
		gbc_textField_11.gridx = 1;
		gbc_textField_11.gridy = 4;
		panel_7.add(textField_11, gbc_textField_11);
		textField_11.setColumns(10);

		JButton btnNewButton_6 = new JButton("\u53D1\u9001\u5019\u9009\u4EBA\u4FE1\u606F");
		btnNewButton_6.setFont(new Font("微软雅黑", Font.PLAIN, 12));
		GridBagConstraints gbc_btnNewButton_6 = new GridBagConstraints();
		gbc_btnNewButton_6.insets = new Insets(0, 0, 0, 5);
		gbc_btnNewButton_6.gridx = 1;
		gbc_btnNewButton_6.gridy = 6;
		panel_7.add(btnNewButton_6, gbc_btnNewButton_6);

		// 各个按钮的事件监听
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				str1 = textField_2.getText();
				lblNewLabel_6.setText(str1);
				btnNewButton_1.setEnabled(false);
			}
		});

		btnNewButton_2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				str2 = textField_3.getText();
				lblNewLabel_7.setText(str2);
				btnNewButton_2.setEnabled(false);
			}
		});

		btnNewButton_3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				str3 = textField_4.getText();
				lblNewLabel_8.setText(str3);
				btnNewButton_3.setEnabled(false);
			}
		});
		btnNewButton_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				str4 = textField_5.getText();
				lblNewLabel_9.setText(str4);
				btnNewButton_4.setEnabled(false);
			}
		});

		btnNewButton_5.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				str5 = textField_6.getText();
				lblNewLabel_10.setText(str5);
				btnNewButton_5.setEnabled(false);
			}
		});

		// 其实还没想好这个要干嘛用
		btnNewButton_6.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
	}

	private JFrame frame;
	private JTextField textField;
	private JTextField textField_1;
	private ServerSocket listenSocket = null; // 侦听套接字
	private Socket toClientSocket = null; // 与客户机对话的套接字
	public static int clientCounts = 0; // 客户数量编号
	PrintWriter pw;
	BufferedReader in;
	String host;
	int port;
	String cm;
	static JTextField textField_2;
	private JTextField textField_3;
	private JTextField textField_4;
	private JTextField textField_5;
	private JTextField textField_6;
	public static String str1;
	public static String str2;
	public static String str3;
	public static String str4;
	public static String str5;
	public static String str6;
	public static JTextField textField_7;
	public static JTextField textField_8;
	public static JTextField textField_9;
	public static JTextField textField_10;
	public static JTextField textField_11;
	static JLabel lblNewLabel_6;
}
最近下载更多
求学的熊猫  LV7 2023年12月26日
微信网友_5973767083364352  LV1 2022年5月25日
微信网友_5927360927125504  LV1 2022年4月22日
543666826  LV33 2022年3月12日
William2342  LV1 2022年2月8日
lllayc  LV1 2022年1月3日
Thynpa  LV1 2021年12月23日
1095402829  LV18 2021年12月15日
Derrick  LV1 2021年12月15日
Undead  LV2 2021年12月14日
最近浏览更多
akittyboy  LV9 3月22日
wananall  LV13 3月13日
laishaofe  LV7 1月16日
求学的熊猫  LV7 2023年12月25日
lshlsh 2023年12月25日
暂无贡献等级
shiaomon 2023年12月14日
暂无贡献等级
嗯嗯嗯嗯嗯嗯2528 2023年11月29日
暂无贡献等级
ftc1314  LV12 2023年11月2日
2017143155  LV12 2023年6月23日
2057889678 2023年6月8日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友