Java编程冒险 - 第二十六节课(网络编程和GUI编程)

100 阅读2分钟

欢迎回来,代码忍者们!在上一集的魔法世界中,我们成为了代码的探险家,掌握了文件I/O和序列化的神秘力量。今天,我们要继续我们的冒险之旅,深入到Java网络编程和多线程图形用户界面(GUI)的魔法领域。准备好了吗?让我们穿上我们的斗篷,拿起魔杖,一起进入网络编程和GUI的世界吧!

  1. 网络编程——信息的传递者 网络编程就像是信息的传递者,它允许我们的应用程序通过网络发送和接收数据。通过使用Socket类和ServerSocket类,我们可以创建客户端和服务器:
  • 创建服务器:
try (ServerSocket serverSocket = new ServerSocket(8080)) {
    while (true) {
        try (Socket clientSocket = serverSocket.accept();
             PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
             BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))) {
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println("Client: " + inputLine);
                out.println("Server: " + inputLine);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}
  • 创建客户端:
try (Socket socket = new Socket("localhost", 8080);
     PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
     BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
    out.println("Hello, Server!");
    String response;
    while ((response = in.readLine()) != null) {
        System.out.println("Server: " + response);
    }
} catch (IOException e) {
    e.printStackTrace();
}
  1. GUI编程——界面的创造者 GUI编程就像是界面的创造者,它允许我们创建具有图形界面的应用程序。通过使用Swing库,我们可以创建窗口、按钮、文本框等GUI组件:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Calculator extends JFrame {
    private JTextField textField;
    private JButton addButton, subtractButton, multiplyButton, divideButton;
    private JLabel resultLabel;

    public Calculator() {
        setTitle("Calculator");
        setLayout(new FlowLayout());

        textField = new JTextField(10);
        addButton = new JButton("+");
        subtractButton = new JButton("-");
        multiplyButton = new JButton("*");
        divideButton = new JButton("/");
        resultLabel = new JLabel("Result: ");

        addButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int result = Integer.parseInt(textField.getText()) + Integer.parseInt(textField.getText());
                resultLabel.setText("Result: " + result);
            }
        });

        add(textField);
        add(addButton);
        add(subtractButton);
        add(multiplyButton);
        add(divideButton);
        add(resultLabel);

        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Calculator();
            }
        });
    }
}
  1. 总结——成为代码世界的全能大师 今天的课程里,我们就像是在学习如何成为代码世界的全能大师,探索了Java的网络编程和GUI编程。这些技能将使我们能够构建更加丰富和多样化的应用程序。在下一节课程中,我们将解锁更多的Java秘籍,准备好迎接更多挑战了吗?让我们继续前进,深入Java的高级话题,成为真正的代码世界全能大师!