📄 exercise20_1client.java
字号:
/*写程序实现并发的客户机-服务器以计算长方体的面积和体积*/import java.io.*;import java.net.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Exercise20_1Client extends JFrame implements ActionListener { private JTextField jtfLength = new JTextField(); private JTextField jtfWidth = new JTextField(); private JTextField jtfHigh = new JTextField(); private JButton jbtSubmit= new JButton("Submit"); private JTextArea jta = new JTextArea(); private DataOutputStream osToServer; private DataInputStream isFromServer; public static void main(String[] args) { new Exercise20_1Client(); } public Exercise20_1Client() { JPanel p1 = new JPanel(); p1.setLayout(new GridLayout(3, 1)); p1.add(new JLabel("Length")); p1.add(new JLabel("Width")); p1.add(new JLabel("High")); Panel p2 = new Panel(); p2.setLayout(new GridLayout(3, 1)); p2.add(jtfLength); p2.add(jtfWidth); p2.add(jtfHigh); JPanel p = new JPanel(); p.setLayout(new BorderLayout()); p.add(p1, BorderLayout.WEST); p.add(p2, BorderLayout.CENTER); p.add(jbtSubmit, BorderLayout.EAST); jtfLength.setHorizontalAlignment(JTextField.RIGHT); jtfWidth.setHorizontalAlignment(JTextField.RIGHT); jtfHigh.setHorizontalAlignment(JTextField.RIGHT); getContentPane().setLayout(new BorderLayout()); getContentPane().add(p, BorderLayout.NORTH); getContentPane().add(new JScrollPane(jta), BorderLayout.CENTER); jbtSubmit.addActionListener(this); jta.setWrapStyleWord(true); jta.setLineWrap(true); setTitle("Exercise20_1Client"); setSize(500, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); try { Socket connectToServer = new Socket("localhost", 8000); isFromServer = new DataInputStream( connectToServer.getInputStream()); osToServer = new DataOutputStream(connectToServer.getOutputStream()); } catch (IOException ex) { jta.append(ex.toString() + '\n'); } } public void actionPerformed(ActionEvent e) { String actionCommand = e.getActionCommand(); if (e.getSource() instanceof JButton) { try { double length = Double.parseDouble(jtfLength.getText().trim()); double width = Double.parseDouble(jtfWidth.getText().trim()); double high = Double.parseDouble(jtfHigh.getText().trim()); osToServer.writeDouble(length); osToServer.writeDouble(width); osToServer.writeDouble(high); osToServer.flush(); double area = isFromServer.readDouble(); double volume = isFromServer.readDouble(); jta.append("Length: " + length + " Width: " + width + " High: " + high + "\n"); jta.append(" Area: " + area + " " + " Volume: " + volume + '\n'); } catch (IOException ex) { System.err.println(ex); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -