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; }

求学的熊猫 LV11
2023年12月26日
微信网友_5973767083364352 LV1
2022年5月25日
微信网友_5927360927125504 LV1
2022年4月22日
543666826 LV34
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日